Whamcloud - gitweb
LU-15285 mdt: fix same-dir racing rename deadlock
authorOleg Drokin <green@whamcloud.com>
Mon, 29 Nov 2021 21:45:16 +0000 (16:45 -0500)
committerAndreas Dilger <adilger@whamcloud.com>
Thu, 12 May 2022 20:24:14 +0000 (20:24 +0000)
commitcce2511450f9b54dd178ee3dbad6c7fa1a8f3c6e
tree1ddda9143a23bd06c131b906d6eb25c0432a0cc9
parentaf041fccc16bdb743ead49283b34ef43b92b9e2a
LU-15285 mdt: fix same-dir racing rename deadlock

With LU-12125 lifting the BFL for same directory rename,
a deadlock possibility opens up since we lock source and target
of rename in the source-target order, if there are two renames
racing to rename arguments in reverse order:
mv a b &
mv b a

a lock inversion happens and a deadlock has been observed.

To avert this - instill additional order requirement:
lower PDO hash value is to be locked ahead of the higher one.

Lustre-change: https://review.whamcloud.com/45676
Lustre-commit: 82ec537d8b4cc9261828f4efe6b03d8d33f38432

Fixes: d76cc65d5d68 ("LU-12125 mds: allow parallel regular file rename")
Fixes: b50bb830f92e ("LU-3538 dne: Commit-on-Sharing for DNE")
Fixes: 9f1711f3d7d1 ("LU-12081 mdt: rename shouldn't PDO lock if parent is remote")
Change-Id: I88dd3aebb394ea40e97e6029d6dcc161116f982e
Signed-off-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Patrick Farrell <pfarrell@whamcloud.com>
Reviewed-by: Lai Siyao <lai.siyao@whamcloud.com>
Reviewed-on: https://review.whamcloud.com/47278
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
lustre/mdt/mdt_reint.c