From: Sage Weil Date: Mon, 1 Mar 2010 23:16:56 +0000 (-0800) Subject: ceph: fix flush_dirty_caps race with caps migration X-Git-Tag: v2.6.34-rc2~9^2~2 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e9964c102312967a4bc1fd501cb628c4a3b19034;p=pandora-kernel.git ceph: fix flush_dirty_caps race with caps migration The flush_dirty_caps() used to loop over the first entry of the cap_dirty dirty list on the assumption that after calling ceph_check_caps() it would be removed from the list. This isn't true for caps that are being migrated between MDSs, where we've received the EXPORT but not the IMPORT. Instead, do a safe list iteration, and pin the next inode on the list via the CEPH_I_NOFLUSH flag. Signed-off-by: Sage Weil --- Reading git-diff-tree failed