• Sage Weil's avatar
    ceph: use i_ceph_lock instead of i_lock · be655596
    Sage Weil authored
    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: default avatarAmon Ott <a.ott@m-privacy.de>
    Signed-off-by: default avatarSage Weil <sage@newdream.net>
    be655596
snap.c 25.8 KB