* [Cluster-devel] [GFS2 PATCH] GFS2: Set gl_object during inode create
@ 2012-11-21 14:56 Bob Peterson
0 siblings, 0 replies; only message in thread
From: Bob Peterson @ 2012-11-21 14:56 UTC (permalink / raw)
To: cluster-devel.redhat.com
Hi,
This patch fixes a cluster coherency problem that occurs when one
node creates a file, does several writes, then a different node
tries to write to the same file. When the inode's glock is demoted,
the inode wasn't synced to the media properly because the gl_object
wasn't set. Later, the flush daemon noticed the uncommitted data
and tried to flush it, only to discover the glock was no longer locked
properly in exclusive mode. That caused an assert withdraw.
Regards,
Bob Peterson
Red Hat File Systems
Signed-off-by: Bob Peterson <rpeterso@redhat.com>
---
diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c
index e321333..8ba7799 100644
--- a/fs/gfs2/inode.c
+++ b/fs/gfs2/inode.c
@@ -698,6 +698,7 @@ static int gfs2_create_inode(struct inode *dir, struct dentry *dentry,
if (error)
goto fail_free_inode;
+ ip->i_gl->gl_object = ip;
error = gfs2_glock_nq_init(ip->i_gl, LM_ST_EXCLUSIVE, GL_SKIP, ghs + 1);
if (error)
goto fail_free_inode;
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2012-11-21 14:56 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-21 14:56 [Cluster-devel] [GFS2 PATCH] GFS2: Set gl_object during inode create Bob Peterson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).