[Cluster-devel] GFS2: Flush pending glock work when evicting an inode

Steven Whitehouse swhiteho at redhat.com
Fri Mar 9 16:03:10 UTC 2012


>From 35e478f42271673f79066a1ed008c6604621c6fe Mon Sep 17 00:00:00 2001
From: Steven Whitehouse <swhiteho at redhat.com>
Date: Wed, 7 Mar 2012 10:43:02 +0000
Subject: GFS2: Flush pending glock work when evicting an inode

This ensures that we will not try to access the inode thats
being flushed via the glock after it has been freed.

Signed-off-by: Steven Whitehouse <swhiteho at redhat.com>

diff --git a/fs/gfs2/super.c b/fs/gfs2/super.c
index f3faf72..6172fa7 100644
--- a/fs/gfs2/super.c
+++ b/fs/gfs2/super.c
@@ -1557,6 +1557,7 @@ out:
 	end_writeback(inode);
 	gfs2_dir_hash_inval(ip);
 	ip->i_gl->gl_object = NULL;
+	flush_delayed_work_sync(&ip->i_gl->gl_work);
 	gfs2_glock_add_to_lru(ip->i_gl);
 	gfs2_glock_put(ip->i_gl);
 	ip->i_gl = NULL;
-- 
1.7.4






More information about the Cluster-devel mailing list