linux/fs/ceph
Zhan Xusheng 91880e4a7f ceph: use the mount idmap for the owner checks in the SET_LAYOUT ioctls
ceph_ioctl_set_layout() and ceph_ioctl_set_layout_policy() call
inode_owner_or_capable() with &nop_mnt_idmap instead of the idmap of the
mount the ioctl was issued on.

CephFS supports idmapped mounts (FS_ALLOW_IDMAP), so on such a mount this
compares the caller's fsuid against the unmapped on-disk owner rather than
the mapped owner: the actual owner can be wrongly denied with -EACCES and
an unrelated caller wrongly allowed.  Both functions already have the
struct file, so use file_mnt_idmap(file) instead.

Cc: stable@vger.kernel.org
Fixes: cee38bbf55 ("ceph: add owner/capability checks for CEPH_IOC_SET_LAYOUT*")
Signed-off-by: Zhan Xusheng <zhanxusheng@xiaomi.com>
Reviewed-by: Xiubo Li <xiubo.li@clyso.com>
Reviewed-by: Alex Markuze <amarkuze@redhat.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2026-08-12 21:21:41 +02:00
..
acl.c posix_acl: make posix_acl_to_xattr() alloc the buffer 2026-01-16 10:51:12 +01:00
addr.c ceph: fix writeback_count leak in write_folio_nounlock() 2026-07-23 20:29:41 +02:00
cache.c ceph: use the new ->i_state accessors 2025-10-20 20:22:27 +02:00
cache.h netfs: Provide invalidate_folio and release_folio calls 2023-12-24 15:08:51 +00:00
caps.c ceph: fix hanging __ceph_get_caps() with stale mds_wanted 2026-07-23 20:29:42 +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
crypto.c treewide: change inode->i_ino from unsigned long to u64 2026-03-06 14:31:28 +01:00
crypto.h ceph: replace local base64 helpers with lib/base64 2025-11-20 14:03:44 -08:00
debugfs.c ceph: add manual reset debugfs control and tracepoints 2026-06-22 22:45:05 +02:00
dir.c ceph: fix refcount leak in ceph_readdir() 2026-07-23 20:29:41 +02:00
export.c ceph: cleanup hardcoded constants of file handle size 2025-06-01 17:53:16 +02:00
file.c ceph: fix hanging __ceph_get_caps() with stale mds_wanted 2026-07-23 20:29:42 +02:00
inode.c ceph: add diagnostic timeout loop to wait_caps_flush() 2026-06-22 22:44:56 +02:00
io.c ceph: fix potential race condition on operations with CEPH_I_ODIRECT flag 2025-10-08 23:30:46 +02:00
io.h ceph: make ceph_start_io_*() killable 2025-10-08 23:30:46 +02:00
ioctl.c ceph: use the mount idmap for the owner checks in the SET_LAYOUT ioctls 2026-08-12 21:21:41 +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: stop selecting CRC32, CRYPTO, and CRYPTO_AES 2025-12-10 11:50:54 +01:00
locks.c ceph: add client reset state machine and session teardown 2026-06-22 22:45:00 +02:00
Makefile ceph: add subvolume metrics collection and reporting 2026-04-22 01:40:23 +02:00
mds_client.c ceph: avoid fs reclaim while using current->journal_info 2026-07-23 20:29:42 +02:00
mds_client.h ceph: fix hanging __ceph_get_caps() with stale mds_wanted 2026-07-23 20:29:42 +02:00
mdsmap.c ceph: fix MDS random selection readiness predicate 2026-08-12 21:21:41 +02:00
mdsmap.h ceph: fix NULL pointer dereference in ceph_mds_auth_match() 2026-02-04 22:00:42 +01:00
metric.c ceph: add subvolume metrics collection and reporting 2026-04-22 01:40:23 +02:00
metric.h ceph: add subvolume metrics collection and reporting 2026-04-22 01:40:23 +02:00
quota.c ceph: add ceph_has_realms_with_quotas() check to ceph_quota_update_statfs() 2026-05-11 10:39:22 +02:00
snap.c ceph: convert inode flags to named bit positions and atomic bitops 2026-06-22 22:44:42 +02:00
strings.c ceph: add getvxattr op 2022-03-01 18:26:37 +01:00
subvolume_metrics.c ceph: add subvolume metrics collection and reporting 2026-04-22 01:40:23 +02:00
subvolume_metrics.h ceph: add subvolume metrics collection and reporting 2026-04-22 01:40:23 +02:00
super.c ceph: add subvolume metrics collection and reporting 2026-04-22 01:40:23 +02:00
super.h ceph: add manual reset debugfs control and tracepoints 2026-06-22 22:45:05 +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 ceph: convert inode flags to named bit positions and atomic bitops 2026-06-22 22:44:42 +02:00