GFS2: Flush pending glock work when evicting an inode
authorSteven Whitehouse <swhiteho@redhat.com>
Wed, 7 Mar 2012 10:43:02 +0000 (10:43 +0000)
committerSteven Whitehouse <swhiteho@redhat.com>
Wed, 7 Mar 2012 10:43:02 +0000 (10:43 +0000)
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>
fs/gfs2/super.c

index f3faf72..6172fa7 100644 (file)
@@ -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;