linux-stable/fs/ceph
Jeff Layton 25633e355c ceph: fix setting of xattrs on async created inodes
commit 620239d9a3 upstream.

Currently when we create a file, we spin up an xattr buffer to send
along with the create request. If we end up doing an async create
however, then we currently pass down a zero-length xattr buffer.

Fix the code to send down the xattr buffer in req->r_pagelist. If the
xattrs span more than a page, however give up and don't try to do an
async create.

Cc: stable@vger.kernel.org
URL: https://bugzilla.redhat.com/show_bug.cgi?id=2063929
Fixes: 9a8d03ca2e ("ceph: attempt to do async create when possible")
Reported-by: John Fortin <fortinj66@gmail.com>
Reported-by: Sri Ramanujam <sri@ramanujam.io>
Signed-off-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: Xiubo Li <xiubli@redhat.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-05-18 10:28:21 +02:00
..
acl.c vfs: add rcu argument to ->get_acl() callback 2021-08-18 22:08:24 +02:00
addr.c netfs: Make ops->init_rreq() optional 2022-01-21 21:36:28 +00:00
cache.c ceph: conversion to new fscache API 2022-01-11 22:13:01 +00:00
cache.h ceph: conversion to new fscache API 2022-01-11 22:13:01 +00:00
caps.c ceph: fix possible NULL pointer dereference for req->r_session 2022-05-09 09:16:15 +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: add a new metric to keep track of remote object copies 2021-11-08 03:29:52 +01:00
dir.c ceph: fix memory leak in ceph_readdir when note_last_dentry returns error 2022-04-13 19:27:22 +02:00
export.c ceph: shut down access to inode when async create fails 2021-11-08 03:29:51 +01:00
file.c ceph: fix setting of xattrs on async created inodes 2022-05-18 10:28:21 +02:00
inode.c ceph: fix inode reference leakage in ceph_get_snapdir() 2022-04-13 19:27:22 +02:00
io.c ceph: fix kerneldoc copypasta over ceph_start_io_direct 2021-04-27 23:52:23 +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 ceph: conversion to new fscache API 2022-01-11 22:13:01 +00:00
locks.c One notable change here is that async creates and unlinks introduced 2021-11-13 11:31:07 -08:00
Makefile ceph: add dentry lease metric support 2020-06-01 13:22:51 +02:00
mds_client.c ceph: initialize pathlen variable in reconnect_caps_cb 2021-12-01 17:08:26 +01:00
mds_client.h ceph: flush mdlog before umounting 2021-09-02 22:49:16 +02:00
mdsmap.c ceph: fix mdsmap decode when there are MDS's beyond max_mds 2021-11-08 03:29:52 +01:00
metric.c ceph: drop send metrics debug message 2022-01-13 13:40:06 +01:00
metric.h ceph: add a new metric to keep track of remote object copies 2021-11-08 03:29:52 +01:00
quota.c ceph: don't check for quotas on MDS stray dirs 2022-01-13 13:40:07 +01:00
snap.c ceph: add ceph_change_snap_realm() helper 2021-09-02 22:49:17 +02:00
strings.c ceph: flush mdlog before umounting 2021-09-02 22:49:16 +02:00
super.c The highlight is the new mount "device" string syntax implemented 2022-01-20 13:46:20 +02:00
super.h The highlight is the new mount "device" string syntax implemented 2022-01-20 13:46:20 +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 security: Return xattr name from security_dentry_init_security() 2021-10-20 08:17:08 -04:00