]> git.ipfire.org Git - thirdparty/linux.git/commit
gfs2: Retries missing in gfs2_{rename,exchange}
authorAndreas Gruenbacher <agruenba@redhat.com>
Tue, 9 Dec 2025 22:59:12 +0000 (22:59 +0000)
committerAndreas Gruenbacher <agruenba@redhat.com>
Mon, 26 Jan 2026 13:28:17 +0000 (14:28 +0100)
commit11d763f0b0afc2cf5f92f4adae5dbbbbef712f8f
tree39db46af6d1735c780221ab2ddc3eb3cde7bbe6f
parentf8f04248c7e9f5d77a93857e3a5d28c0833056dc
gfs2: Retries missing in gfs2_{rename,exchange}

Fix a bug in gfs2's asynchronous glock handling for rename and exchange
operations.  The original async implementation from commit ad26967b9afa
("gfs2: Use async glocks for rename") mentioned that retries were needed
but never implemented them, causing operations to fail with -ESTALE
instead of retrying on timeout.

Also makes the waiting interruptible.

In addition, the timeouts used were too high for situations in which
timing out is a rare but expected scenario.  Switch to shorter timeouts
with randomization and exponentional backoff.

Fixes: ad26967b9afa ("gfs2: Use async glocks for rename")
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
fs/gfs2/glock.c
fs/gfs2/glock.h
fs/gfs2/inode.c