Whamcloud - gitweb
LU-15285 mdt: fix same-dir racing rename deadlock 76/45676/9
authorOleg Drokin <green@whamcloud.com>
Mon, 29 Nov 2021 21:45:16 +0000 (16:45 -0500)
committerOleg Drokin <green@whamcloud.com>
Mon, 31 Jan 2022 01:24:06 +0000 (01:24 +0000)
commit82ec537d8b4cc9261828f4efe6b03d8d33f38432
tree0c0c35bf10be403669a111c721adac352e09a67d
parentcd1f8527d414a12ec7eb5b69fe30509a45b33ad4
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>
lustre/mdt/mdt_reint.c