[Cluster-devel] GFS2: Check for glock already held in gfs2_getxattr
Steven Whitehouse
swhiteho at redhat.com
Fri Aug 16 20:41:39 UTC 2013
>From 6c0d451c121bbd7f5a28836a725878c067395a1d Mon Sep 17 00:00:00 2001
From: Steven Whitehouse <swhiteho at redhat.com>
Date: Fri, 16 Aug 2013 21:10:28 +0100
Subject: [PATCH] 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 at redhat.com>
Reported-by: David Teigland <teigland at redhat.com>
Tested-by: David Teigland <teigland at redhat.com>
diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c
index a01b8fd..64915ee 100644
--- a/fs/gfs2/inode.c
+++ b/fs/gfs2/inode.c
@@ -1750,6 +1750,10 @@ static ssize_t gfs2_getxattr(struct dentry *dentry, const char *name,
struct gfs2_holder gh;
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);
ret = gfs2_glock_nq(&gh);
if (ret == 0) {
--
1.7.4
More information about the Cluster-devel
mailing list