aboutsummaryrefslogtreecommitdiffstats
path: root/fs/gfs2/super.c
diff options
context:
space:
mode:
authorBenjamin Marzinski <bmarzins@redhat.com>2009-07-23 19:52:34 -0400
committerSteven Whitehouse <swhiteho@redhat.com>2009-07-30 06:01:03 -0400
commitb94a170e96dc416828af9d350ae2e34b70ae7347 (patch)
tree6000929d554359c7b520a49a63415b9fc18b48b9 /fs/gfs2/super.c
parent6b94617024bd6810cde1d0d491202c30d5a38d91 (diff)
GFS2: remove dcache entries for remote deleted inodes
When a file is deleted from a gfs2 filesystem on one node, a dcache entry for it may still exist on other nodes in the cluster. If this happens, gfs2 will be unable to free this file on disk. Because of this, it's possible to have a gfs2 filesystem with no files on it and no free space. With this patch, when a node receives a callback notifying it that the file is being deleted on another node, it schedules a new workqueue thread to remove the file's dcache entry. Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> 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 552e321cee5e..f522bb017973 100644
--- a/fs/gfs2/super.c
+++ b/fs/gfs2/super.c
@@ -691,6 +691,7 @@ static int gfs2_make_fs_ro(struct gfs2_sbd *sdp)
691 struct gfs2_holder t_gh; 691 struct gfs2_holder t_gh;
692 int error; 692 int error;
693 693
694 flush_workqueue(gfs2_delete_workqueue);
694 gfs2_quota_sync(sdp); 695 gfs2_quota_sync(sdp);
695 gfs2_statfs_sync(sdp); 696 gfs2_statfs_sync(sdp);
696 697