]> git.baikalelectronics.ru Git - kernel.git/commit
ceph: fail the request directly if handle_reply gets an ESTALE
authorXiubo Li <xiubli@redhat.com>
Mon, 7 Feb 2022 05:03:40 +0000 (13:03 +0800)
committerIlya Dryomov <idryomov@gmail.com>
Tue, 1 Mar 2022 17:26:36 +0000 (18:26 +0100)
commit99eb34efbeae71e646d7e81d6146c763f7941ebb
treeda63b218ce4e5d42a184b2660ec6725c95dc087e
parent754fee368d5326400804dfe15f647279b464020b
ceph: fail the request directly if handle_reply gets an ESTALE

If MDS return ESTALE, that means the MDS has already iterated all the
possible active MDSes including the auth MDS or the inode is under
purging. No need to retry in auth MDS and will just return ESTALE
directly. Retrying in this situation will cause an infinite loop.

Also, retrying like this would prevent the kernel VFS layer ESTALE
handling from working properly. An ESTALE error is usually an indication
that the dcache is wrong, so we want to allow the VFS to redo the lookup
and revalidate it properly.

URL: https://tracker.ceph.com/issues/53504
Signed-off-by: Xiubo Li <xiubli@redhat.com>
Acked-by: Greg Farnum <gfarnum@redhat.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
fs/ceph/mds_client.c