linux_dsm_epyc7002/fs/ceph
Jeff Layton 1bcb344086 ceph: only use d_name directly when parent is locked
Ben reported tripping the BUG_ON in create_request_message during some
performance testing. Analysis of the vmcore showed that the length of
the r_dentry->d_name string changed after we allocated the buffer, but
before we encoded it.

build_dentry_path returns pointers to d_name in the common case of
non-snapped dentries, but this optimization isn't safe unless the parent
directory is locked. When it isn't, have the code make a copy of the
d_name while holding the d_lock.

Cc: stable@vger.kernel.org
Reported-by: Ben England <bengland@redhat.com>
Signed-off-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: "Yan, Zheng" <zyan@redhat.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2019-04-23 21:37:54 +02:00
..
acl.c libceph: introduce ceph_pagelist_alloc() 2018-10-22 10:28:21 +02:00
addr.c ceph: use vmf_error() in ceph_filemap_fault() 2019-01-07 22:48:48 +01:00
cache.c ceph: use timespec64 for inode timestamp 2018-08-02 21:26:12 +02:00
cache.h ceph: improve fscache revalidation 2016-06-01 10:31:50 +02:00
caps.c ceph: add mount option to limit caps count 2019-03-05 18:55:17 +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: remove dentry_lru file from debugfs 2019-03-05 18:55:17 +01:00
dir.c ceph: add mount option to limit caps count 2019-03-05 18:55:17 +01:00
export.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
file.c ceph: pass inclusive lend parameter to filemap_write_and_wait_range() 2019-03-05 18:55:17 +01:00
inode.c ceph: fix use-after-free on symlink traversal 2019-03-27 19:00:37 +01: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 fs/*/Kconfig: drop links to 404-compliant http://acl.bestbits.at 2018-01-01 12:45:37 -07:00
locks.c ceph: add newline to end of debug message format 2018-04-02 10:12:44 +02:00
Makefile ceph: quota: add initial infrastructure to support cephfs quotas 2018-04-02 11:17:51 +02:00
mds_client.c ceph: only use d_name directly when parent is locked 2019-04-23 21:37:54 +02:00
mds_client.h ceph: add mount option to limit caps count 2019-03-05 18:55:17 +01:00
mdsmap.c ceph: remove redundant assignment 2018-12-26 15:56:04 +01:00
quota.c ceph: quota: cleanup license mess 2019-01-21 14:53:23 +01:00
snap.c ceph: map snapid to anonymous bdev ID 2019-03-05 18:55:16 +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: add mount option to limit caps count 2019-03-05 18:55:17 +01:00
super.h ceph: add mount option to limit caps count 2019-03-05 18:55:17 +01:00
xattr.c ceph: support getting ceph.dir.pin vxattr 2019-03-05 18:55:16 +01:00