diff options
author | Yan, Zheng <zyan@redhat.com> | 2016-04-15 08:56:12 +0300 |
---|---|---|
committer | Ilya Dryomov <idryomov@gmail.com> | 2016-05-26 02:15:32 +0300 |
commit | 6c93df5db628e710697c43bc1bd78a786549a548 (patch) | |
tree | 8f74edaae6bfb61178af444a9c68fc5cf791f8da /fs/nfs_common | |
parent | 77310320c299b0dc050037ff8fc29fd1861fb005 (diff) | |
download | linux-6c93df5db628e710697c43bc1bd78a786549a548.tar.xz |
ceph: don't call truncate_pagecache in ceph_writepages_start
truncate_pagecache() may decrease inode's reference. This can cause
deadlock if inode's last reference is dropped and iput_final() wants
to evict the inode. (evict() calls inode_wait_for_writeback(), which
waits for ceph_writepages_start() to return).
The fix is use work thead to truncate dirty pages. Also add 'forced
umount' check to ceph_update_writeable_page(), which prevents new
pages getting dirty.
Signed-off-by: Yan, Zheng <zyan@redhat.com>
Diffstat (limited to 'fs/nfs_common')
0 files changed, 0 insertions, 0 deletions