ceph: fix setting of xattrs on async created inodes
authorJeff Layton <jlayton@kernel.org>
Mon, 25 Apr 2022 19:54:27 +0000 (15:54 -0400)
committerIlya Dryomov <idryomov@gmail.com>
Tue, 10 May 2022 07:48:31 +0000 (09:48 +0200)
commit620239d9a32e9fe27c9204ec11e40058671aeeb6
treecc09721841bb8ed9f31cb4baeeb8f98393d8278e
parentc5eb0a61238dd6faf37f58c9ce61c9980aaffd7a
ceph: fix setting of xattrs on async created inodes

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: 9a8d03ca2e2c ("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>
fs/ceph/file.c