summaryrefslogtreecommitdiff
path: root/fs/ceph/caps.c
diff options
context:
space:
mode:
authorLuís Henriques <lhenriques@suse.de>2022-06-03 16:29:09 +0300
committerIlya Dryomov <idryomov@gmail.com>2022-08-03 01:54:12 +0300
commitd93231a6bc8a452323d5fef16cca7107ce483a27 (patch)
tree439f6d9295ccfee1165b0c5c9d9d8de01b65a724 /fs/ceph/caps.c
parent8266c4d7a7469c3fd45ee2b4ebc01aac311c6c48 (diff)
downloadlinux-d93231a6bc8a452323d5fef16cca7107ce483a27.tar.xz
ceph: prevent a client from exceeding the MDS maximum xattr size
The MDS tries to enforce a limit on the total key/values in extended attributes. However, this limit is enforced only if doing a synchronous operation (MDS_OP_SETXATTR) -- if we're buffering the xattrs, the MDS doesn't have a chance to enforce these limits. This patch adds support for decoding the xattrs maximum size setting that is distributed in the mdsmap. Then, when setting an xattr, the kernel client will revert to do a synchronous operation if that maximum size is exceeded. While there, fix a dout() that would trigger a printk warning: [ 98.718078] ------------[ cut here ]------------ [ 98.719012] precision 65536 too large [ 98.719039] WARNING: CPU: 1 PID: 3755 at lib/vsprintf.c:2703 vsnprintf+0x5e3/0x600 ... Link: https://tracker.ceph.com/issues/55725 Signed-off-by: Luís Henriques <lhenriques@suse.de> Reviewed-by: Xiubo Li <xiubli@redhat.com> Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Diffstat (limited to 'fs/ceph/caps.c')
0 files changed, 0 insertions, 0 deletions