ceph: use i_ceph_lock instead of i_lock
We have been using i_lock to protect all kinds of data structures in the ceph_inode_info struct, including lists of inodes that we need to iterate over while avoiding races with inode destruction. That requires grabbing a reference to the inode with the list lock protected, but igrab() now takes i_lock to check the inode flags. Changing the list lock ordering would be a painful process. However, using a ceph-specific i_ceph_lock in the ceph inode instead of i_lock is a simple mechanical change and avoids the ordering constraints imposed by igrab(). Reported-by: Amon Ott <a.ott@m-privacy.de> Signed-off-by: Sage Weil <sage@newdream.net>
This commit is contained in:
@@ -20,7 +20,7 @@
|
||||
*
|
||||
* mdsc->snap_rwsem
|
||||
*
|
||||
* inode->i_lock
|
||||
* ci->i_ceph_lock
|
||||
* mdsc->snap_flush_lock
|
||||
* mdsc->cap_delay_lock
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user