linux-stable/fs/ceph
Yanhu Cao 224c7b6778 ceph: use frag's MDS in either mode
When doing some tests with multiple mds, we were seeing many mds
forwarding requests between them, causing clients to resend.

If the request is a modification operation and the mode is set to
USE_AUTH_MDS, then the auth mds should be selected to handle the
request. If auth mds for frag is already set, then it should be returned
directly without further processing.

The current logic is wrong because it only returns directly if
mode is USE_AUTH_MDS, but we want to do that for all modes. If we don't,
then when the frag's mds is not equal to cap session's mds, the request
will get sent to the wrong MDS needlessly.

Drop the mode check in this condition.

Signed-off-by: Yanhu Cao <gmayyyha@gmail.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2020-08-04 19:41:14 +02:00
..
acl.c ceph: add caps perf metric for each superblock 2020-06-01 13:22:51 +02:00
addr.c ceph: move sb->wb_pagevec_pool to be a global mempool 2020-08-04 19:41:12 +02:00
cache.c ceph: replace zero-length array with flexible-array member 2020-03-30 12:42:40 +02:00
cache.h libceph, rbd, ceph: convert to use the new mount API 2019-11-27 22:28:37 +01:00
caps.c ceph: clean up and optimize ceph_check_delayed_caps() 2020-08-03 11:05:21 +02: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: remove redundant initialization of variable mds 2020-08-03 11:05:28 +02:00
dir.c ceph: set sec_context xattr on symlink creation 2020-08-04 19:41:11 +02:00
export.c ceph: don't return -ESTALE if there's still an open file 2020-06-01 13:22:53 +02:00
file.c ceph: do not access the kiocb after aio requests 2020-08-03 11:05:25 +02:00
inode.c ceph: add caps perf metric for each superblock 2020-06-01 13:22:51 +02: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 ceph: consider inode's last read/write when calculating wanted caps 2020-03-30 12:42:42 +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 libceph: replace HTTP links with HTTPS ones 2020-08-03 11:05:26 +02:00
locks.c ceph: check if file lock exists before sending unlock request 2020-03-30 12:42:40 +02:00
Makefile ceph: add dentry lease metric support 2020-06-01 13:22:51 +02:00
mds_client.c ceph: use frag's MDS in either mode 2020-08-04 19:41:14 +02:00
mds_client.h ceph: periodically send perf metrics to MDSes 2020-08-03 11:05:26 +02:00
mdsmap.c ceph: remove unused variables in ceph_mdsmap_decode() 2020-08-03 11:05:27 +02:00
metric.c ceph: periodically send perf metrics to MDSes 2020-08-03 11:05:26 +02:00
metric.h ceph: send client provided metric flags in client metadata 2020-08-03 11:05:27 +02:00
quota.c ceph: allow rename operation under different quota realms 2020-06-01 13:22:53 +02:00
snap.c ceph: fix memory leak in ceph_cleanup_snapid_map() 2020-03-23 13:07:08 +01: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: move sb->wb_pagevec_pool to be a global mempool 2020-08-04 19:41:12 +02:00
super.h ceph: move sb->wb_pagevec_pool to be a global mempool 2020-08-04 19:41:12 +02:00
util.c ceph: move net/ceph/ceph_fs.c to fs/ceph/util.c 2020-01-27 16:53:40 +01:00
xattr.c ceph: remove unnecessary cast in kfree() 2020-08-03 11:05:26 +02:00