Skip to content

Commit

Permalink
[GFS2] Fix ordering of page disposal vs. glock_dq
Browse files Browse the repository at this point in the history
In case of unlinked files with dirty pages GFS2 wasn't clearing
the pages in quite the right order. This patch clears the pages
earlier (before the qlock_dq) to avoid the situation that the
release of the glock results in attempting to write back data that
has already been deallocated.

This fixes Red Hat bugzilla: #220117

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
  • Loading branch information
Steven Whitehouse committed Feb 5, 2007
1 parent 4edde74 commit 49686f7
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions fs/gfs2/ops_super.c
Original file line number Diff line number Diff line change
Expand Up @@ -429,6 +429,12 @@ static void gfs2_delete_inode(struct inode *inode)
}

error = gfs2_dinode_dealloc(ip);
/*
* Must do this before unlock to avoid trying to write back
* potentially dirty data now that inode no longer exists
* on disk.
*/
truncate_inode_pages(&inode->i_data, 0);

out_unlock:
gfs2_glock_dq(&ip->i_iopen_gh);
Expand Down

0 comments on commit 49686f7

Please sign in to comment.