From: Xiubo Li <xiubli@xxxxxxxxxx> V3: - fix one crash bug in the first patch. V2: - minor fixes to clean up the code from Jeff's comments, thanks - swith to use lockdep_assert_held(). Test this for around 5 hours and this patch series worked well for me, my test script is: $ while [ 1 ]; do date; for d in A B C; do (for i in {1..3}; do ./bin/mount.ceph :/ /mnt/kcephfs.$d -o noshare; rm -rf /mnt/kcephfs.$d/file$i.txt; rmdir /mnt/kcephfs.$d/.snap/snap$i; dd if=/dev/zero of=/mnt/kcephfs.$d/file$i.txt bs=1M count=8; mkdir -p /mnt/kcephfs.$d/.snap/snap$i; umount -fl /mnt/kcephfs.$d; done ) & done; wait; date; done Xiubo Li (3): ceph: remove the capsnaps when removing the caps ceph: don't WARN if we're force umounting ceph: don't WARN if we're iterate removing the session caps fs/ceph/caps.c | 106 ++++++++++++++++++++++++++++++++----------- fs/ceph/mds_client.c | 40 ++++++++++++++-- fs/ceph/super.h | 7 +++ 3 files changed, 123 insertions(+), 30 deletions(-) -- 2.27.0