diff options
author | Jan Kara <jack@suse.cz> | 2013-03-14 17:30:54 +0400 |
---|---|---|
committer | Ben Myers <bpm@sgi.com> | 2013-03-23 01:12:37 +0400 |
commit | ff9a28f6c25d18a635abcab1f49db68108203dfb (patch) | |
tree | 45c351bbe7e5716c17107f277d679509b2466cc9 /fs/xfs/xfs_linux.h | |
parent | 19cb7e3854c9afe2ee968cbdd92293ec09e43bf3 (diff) | |
download | linux-ff9a28f6c25d18a635abcab1f49db68108203dfb.tar.xz |
xfs: Fix WARN_ON(delalloc) in xfs_vm_releasepage()
When a dirty page is truncated from a file but reclaim gets to it before
truncate_inode_pages(), we hit WARN_ON(delalloc) in
xfs_vm_releasepage(). This is because reclaim tries to write the page,
xfs_vm_writepage() just bails out (leaving page clean) and thus reclaim
thinks it can continue and calls xfs_vm_releasepage() on page with dirty
buffers.
Fix the issue by redirtying the page in xfs_vm_writepage(). This makes
reclaim stop reclaiming the page and also logically it keeps page in a
more consistent state where page with dirty buffers has PageDirty set.
Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_linux.h')
0 files changed, 0 insertions, 0 deletions