GFS2: Check for glock already held in gfs2_getxattr
Since the introduction of atomic_open, gfs2_getxattr can be called with the glock already held, so we need to allow for this. Signed-off-by: Steven Whitehouse <swhiteho@redhat.com> Reported-by: David Teigland <teigland@redhat.com> Tested-by: David Teigland <teigland@redhat.com>
This commit is contained in:
@@ -1750,6 +1750,10 @@ static ssize_t gfs2_getxattr(struct dentry *dentry, const char *name,
|
|||||||
struct gfs2_holder gh;
|
struct gfs2_holder gh;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
/* For selinux during lookup */
|
||||||
|
if (gfs2_glock_is_locked_by_me(ip->i_gl))
|
||||||
|
return generic_getxattr(dentry, name, data, size);
|
||||||
|
|
||||||
gfs2_holder_init(ip->i_gl, LM_ST_SHARED, LM_FLAG_ANY, &gh);
|
gfs2_holder_init(ip->i_gl, LM_ST_SHARED, LM_FLAG_ANY, &gh);
|
||||||
ret = gfs2_glock_nq(&gh);
|
ret = gfs2_glock_nq(&gh);
|
||||||
if (ret == 0) {
|
if (ret == 0) {
|
||||||
|
Reference in New Issue
Block a user