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.
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-on: https://review.whamcloud.com/45676
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Reviewed-by: Patrick Farrell <pfarrell@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Lai Siyao <lai.siyao@whamcloud.com>