linux/fs/ceph
Christian Brauner 9c2df2271c ceph: stash idmapping in mdsc request
When sending a mds request cephfs will send relevant data for the
requested operation. For creation requests the caller's fs{g,u}id is
used to set the ownership of the newly created filesystem object. For
setattr requests the caller can pass in arbitrary {g,u}id values to
which the relevant filesystem object is supposed to be changed.

If the caller is performing the relevant operation via an idmapped mount
cephfs simply needs to take the idmapping into account when it sends the
relevant mds request.

In order to support idmapped mounts for cephfs we stash the idmapping
whenever they are relevant for the operation for the duration of the
request. Since mds requests can be queued and performed asynchronously
we make sure to keep the idmapping around and release it once the
request has finished.

In follow-up patches we will use this to send correct ownership
information over the wire. This patch just adds the basic infrastructure
to keep the idmapping around. The actual conversion patches are all
fairly minimal.

Signed-off-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
Reviewed-by: Xiubo Li <xiubli@redhat.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2023-11-03 23:28:33 +01:00
..
acl.c ceph: print cluster fsid and client global_id in all debug logs 2023-11-03 23:28:33 +01:00
addr.c ceph: print cluster fsid and client global_id in all debug logs 2023-11-03 23:28:33 +01:00
cache.c ceph: rename _to_client() to _to_fs_client() 2023-11-03 23:28:33 +01:00
cache.h netfs: Further cleanups after struct netfs_inode wrapper introduced 2022-06-10 20:55:21 +01:00
caps.c ceph: print cluster fsid and client global_id in all debug logs 2023-11-03 23:28:33 +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
crypto.c ceph: print cluster fsid and client global_id in all debug logs 2023-11-03 23:28:33 +01:00
crypto.h ceph: add support for encrypted snapshot names 2023-08-24 11:24:36 +02:00
debugfs.c ceph: print cluster fsid and client global_id in all debug logs 2023-11-03 23:28:33 +01:00
dir.c ceph: print cluster fsid and client global_id in all debug logs 2023-11-03 23:28:33 +01:00
export.c ceph: print cluster fsid and client global_id in all debug logs 2023-11-03 23:28:33 +01:00
file.c ceph: print cluster fsid and client global_id in all debug logs 2023-11-03 23:28:33 +01:00
inode.c ceph: print cluster fsid and client global_id in all debug logs 2023-11-03 23:28:33 +01: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: print cluster fsid and client global_id in all debug logs 2023-11-03 23:28:33 +01: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 ceph: print cluster fsid and client global_id in all debug logs 2023-11-03 23:28:33 +01:00
Makefile ceph: fscrypt_auth handling for ceph 2023-08-22 09:01:48 +02:00
mds_client.c ceph: stash idmapping in mdsc request 2023-11-03 23:28:33 +01:00
mds_client.h ceph: stash idmapping in mdsc request 2023-11-03 23:28:33 +01:00
mdsmap.c libceph, ceph: move mdsmap.h to fs/ceph 2023-11-03 23:28:33 +01:00
mdsmap.h libceph, ceph: move mdsmap.h to fs/ceph 2023-11-03 23:28:33 +01:00
metric.c ceph: print cluster fsid and client global_id in all debug logs 2023-11-03 23:28:33 +01:00
metric.h ceph: include average/stdev r/w/m latency in mds metrics 2022-03-21 13:35:16 +01:00
quota.c ceph: print cluster fsid and client global_id in all debug logs 2023-11-03 23:28:33 +01:00
snap.c ceph: print cluster fsid and client global_id in all debug logs 2023-11-03 23:28:33 +01:00
strings.c ceph: add getvxattr op 2022-03-01 18:26:37 +01:00
super.c ceph: print cluster fsid and client global_id in all debug logs 2023-11-03 23:28:33 +01:00
super.h ceph: print cluster fsid and client global_id in all debug logs 2023-11-03 23:28:33 +01: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 ceph: print cluster fsid and client global_id in all debug logs 2023-11-03 23:28:33 +01:00