diff options
Diffstat (limited to 'fs/gfs2/inode.c')
-rw-r--r-- | fs/gfs2/inode.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c index bbb2715171cd..64915eeae5a7 100644 --- a/fs/gfs2/inode.c +++ b/fs/gfs2/inode.c | |||
@@ -594,7 +594,7 @@ static int gfs2_create_inode(struct inode *dir, struct dentry *dentry, | |||
594 | } | 594 | } |
595 | gfs2_glock_dq_uninit(ghs); | 595 | gfs2_glock_dq_uninit(ghs); |
596 | if (IS_ERR(d)) | 596 | if (IS_ERR(d)) |
597 | return PTR_RET(d); | 597 | return PTR_ERR(d); |
598 | return error; | 598 | return error; |
599 | } else if (error != -ENOENT) { | 599 | } else if (error != -ENOENT) { |
600 | goto fail_gunlock; | 600 | goto fail_gunlock; |
@@ -1750,6 +1750,10 @@ static ssize_t gfs2_getxattr(struct dentry *dentry, const char *name, | |||
1750 | struct gfs2_holder gh; | 1750 | struct gfs2_holder gh; |
1751 | int ret; | 1751 | int ret; |
1752 | 1752 | ||
1753 | /* For selinux during lookup */ | ||
1754 | if (gfs2_glock_is_locked_by_me(ip->i_gl)) | ||
1755 | return generic_getxattr(dentry, name, data, size); | ||
1756 | |||
1753 | gfs2_holder_init(ip->i_gl, LM_ST_SHARED, LM_FLAG_ANY, &gh); | 1757 | gfs2_holder_init(ip->i_gl, LM_ST_SHARED, LM_FLAG_ANY, &gh); |
1754 | ret = gfs2_glock_nq(&gh); | 1758 | ret = gfs2_glock_nq(&gh); |
1755 | if (ret == 0) { | 1759 | if (ret == 0) { |