linux/fs/ceph
Xiubo Li c4853e9776 ceph: retry the same mds later after the new session is opened
If max_mds > 1 and a request is submitted that chooses a random mds
rank, and the relating session is not opened yet, the request will wait
until the session has been opened and resend again.

Every time the request goes through __do_request, it will release the
req->session first and choose a random one again, which may be a
completely different rank than the one it just waited on.

In the worst case, it will open all the mds sessions one by one just
before the request can be successfully sent out.

Signed-off-by: Xiubo Li <xiubli@redhat.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2020-01-27 16:53:39 +01:00
..
acl.c ceph: remove unnecessary assignment in ceph_pre_init_acls() 2020-01-27 16:53:39 +01:00
addr.c ceph: use release_pages() directly 2019-09-16 12:06:25 +02:00
cache.c libceph, rbd, ceph: convert to use the new mount API 2019-11-27 22:28:37 +01:00
cache.h libceph, rbd, ceph: convert to use the new mount API 2019-11-27 22:28:37 +01:00
caps.c ceph: switch to global cap helper 2019-12-09 20:55:10 +01:00
ceph_frag.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
debugfs.c ceph: show tasks waiting on caps in debugfs caps file 2019-12-09 20:55:10 +01:00
dir.c compat_ioctl: remove most of fs/compat_ioctl.c 2019-12-01 13:46:15 -08:00
export.c ceph: move static keyword to the front of declarations 2019-09-16 12:06:25 +02:00
file.c compat_ioctl: remove most of fs/compat_ioctl.c 2019-12-01 13:46:15 -08:00
inode.c ceph: ensure we have a new cap before continuing in fill_inode 2020-01-27 16:53:39 +01:00
io.c ceph: add buffered/direct exclusionary locking for reads and writes 2019-09-16 12:06:25 +02:00
io.h ceph: add buffered/direct exclusionary locking for reads and writes 2019-09-16 12:06:25 +02:00
ioctl.c libceph, ceph: move ceph_calc_file_object_mapping() to striper.c 2018-04-02 10:12:43 +02:00
ioctl.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Kconfig ceph: add selinux support 2019-07-08 14:01:42 +02:00
locks.c ceph: return -EIO if read/write against filp that lost file locks 2019-09-16 12:06:24 +02:00
Makefile ceph: add buffered/direct exclusionary locking for reads and writes 2019-09-16 12:06:25 +02:00
mds_client.c ceph: retry the same mds later after the new session is opened 2020-01-27 16:53:39 +01:00
mds_client.h ceph: keep the session state until it is released 2020-01-27 16:53:39 +01:00
mdsmap.c ceph: only choose one MDS who is in up:active state without laggy 2020-01-27 16:53:39 +01:00
quota.c ceph: fix infinite loop in get_quota_realm() 2019-07-08 14:01:42 +02:00
snap.c ceph: fix buffer free while holding i_ceph_lock in __ceph_build_xattrs_blob() 2019-08-22 10:47:41 +02:00
strings.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
super.c ceph: check availability of mds cluster on mount after wait timeout 2020-01-27 16:53:39 +01:00
super.h ceph: convert int fields in ceph_mount_options to unsigned int 2019-12-09 20:55:10 +01:00
xattr.c ceph: allow arbitrary security.* xattrs 2019-09-16 12:06:25 +02:00