• Y
    ceph: fix freeing inode vs removing session caps race · 6f60f889
    Yan, Zheng 提交于
    remove_session_caps() uses iterate_session_caps() to remove caps,
    but iterate_session_caps() skips inodes that are being deleted.
    So session->s_nr_caps can be non-zero after iterate_session_caps()
    return.
    
    We can fix the issue by waiting until deletions are complete.
    __wait_on_freeing_inode() is designed for the job, but it is not
    exported, so we use lookup inode function to access it.
    Signed-off-by: NYan, Zheng <zheng.z.yan@intel.com>
    6f60f889
inode.c 50.6 KB