summaryrefslogtreecommitdiffstats
path: root/fs/gfs2/super.c
diff options
context:
space:
mode:
authorSteven Whitehouse <swhiteho@redhat.com>2012-03-07 11:43:02 +0100
committerSteven Whitehouse <swhiteho@redhat.com>2012-03-07 11:43:02 +0100
commit35e478f42271673f79066a1ed008c6604621c6fe (patch)
treeac4e7ac2aaf23588ede55aee92ff0f25abad3569 /fs/gfs2/super.c
parentGFS2: make sure rgrps are up to date in func gfs2_blk2rgrpd (diff)
downloadlinux-35e478f42271673f79066a1ed008c6604621c6fe.tar.xz
linux-35e478f42271673f79066a1ed008c6604621c6fe.zip
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@redhat.com>
Diffstat (limited to 'fs/gfs2/super.c')
-rw-r--r--fs/gfs2/super.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/gfs2/super.c b/fs/gfs2/super.c
index f3faf72fa7ae..6172fa77ad59 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;