mirror of
https://github.com/ceph/ceph
synced 2025-02-24 19:47:44 +00:00
1. avoid taking a remote authpin for the quiesce lock 2. drop remote authpins that were taken because of other locks We should not be forcing a mustpin when taking quiesce lock. This creates unnecessary overhead due to the distributed nature of the quiesce: all ranks will execute quiesce_inode, including the auth rank, which will authpin the inode. Auth pinning on the auth rank is important to synchronize quiesce with operations that are managed by the auth, like fragmenting and exporting. If we let a remote quiesce process take a foreign authpin then it may block freezing on the auth, which will stall quiesce locally. This wouldn't be a problem if the quiesce that is blocked on the auth and the quiesce that's holding a remote authpin from the replica side were unrelated, but in our case it may be the same logical quiesce that effectively steps on its own toes. This creates an opportunity for a deadlock. Fixes: https://tracker.ceph.com/issues/66152 Signed-off-by: Leonid Usov <leonid.usov@ibm.com> |
||
---|---|---|
.. | ||
admin | ||
__init__.py | ||
caps_helper.py | ||
cephfs_test_case.py | ||
filesystem.py | ||
fuse_mount.py | ||
kernel_mount.py | ||
mount.py | ||
test_acls.py | ||
test_admin.py | ||
test_auto_repair.py | ||
test_backtrace.py | ||
test_cap_flush.py | ||
test_cephfs_shell.py | ||
test_client_limits.py | ||
test_client_recovery.py | ||
test_damage.py | ||
test_data_scan.py | ||
test_dump_tree.py | ||
test_exports.py | ||
test_failover.py | ||
test_flush.py | ||
test_forward_scrub.py | ||
test_fragment.py | ||
test_fscrypt.py | ||
test_fstop.py | ||
test_full.py | ||
test_journal_migration.py | ||
test_journal_repair.py | ||
test_mantle.py | ||
test_mds_metrics.py | ||
test_meta_injection.py | ||
test_mirroring.py | ||
test_misc.py | ||
test_multifs_auth.py | ||
test_multimds_misc.py | ||
test_newops.py | ||
test_nfs.py | ||
test_openfiletable.py | ||
test_pool_perm.py | ||
test_quiesce.py | ||
test_quota.py | ||
test_readahead.py | ||
test_recovery_fs.py | ||
test_recovery_pool.py | ||
test_scrub_checks.py | ||
test_scrub.py | ||
test_sessionmap.py | ||
test_snap_schedules.py | ||
test_snapshots.py | ||
test_strays.py | ||
test_subvolume.py | ||
test_volumes.py | ||
tests_from_xfstests_dev.py | ||
xfstests_dev.py |