From: Yan, Zheng Date: Tue, 2 Jul 2013 04:40:19 +0000 (+0800) Subject: ceph: fix pending vmtruncate race X-Git-Tag: v3.11-rc1~69^2~4 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b415bf4f9fe25f39934f5c464125e4a2dffb6d08;p=pandora-kernel.git ceph: fix pending vmtruncate race The locking order for pending vmtruncate is wrong, it can lead to following race: write wmtruncate work ------------------------ ---------------------- lock i_mutex check i_truncate_pending check i_truncate_pending truncate_inode_pages() lock i_mutex (blocked) copy data to page cache unlock i_mutex truncate_inode_pages() The fix is take i_mutex before calling __ceph_do_pending_vmtruncate() Fixes: http://tracker.ceph.com/issues/5453 Signed-off-by: Yan, Zheng Reviewed-by: Sage Weil --- Reading git-diff-tree failed