summaryrefslogtreecommitdiffstats
path: root/fs/ceph/dir.c
diff options
context:
space:
mode:
authorJeff Layton <jlayton@kernel.org>2019-04-15 12:00:42 -0400
committerIlya Dryomov <idryomov@gmail.com>2019-04-23 21:37:54 +0200
commit1bcb344086f3ecf8d6705f6d708441baa823beb3 (patch)
treea74e633044deef292484f263c6ecba10e794d40d /fs/ceph/dir.c
parent085b7755808aa11f78ab9377257e1dad2e6fa4bb (diff)
downloadlinux-1bcb344086f3ecf8d6705f6d708441baa823beb3.tar.bz2
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>
Diffstat (limited to 'fs/ceph/dir.c')
0 files changed, 0 insertions, 0 deletions