linux/fs/ksmbd
Christian Brauner da1e7ada5b ksmbd: fix lookup on idmapped mounts
It's great that the new in-kernel ksmbd server will support idmapped
mounts out of the box! However, lookup is currently broken. Lookup
helpers such as lookup_one_len() call inode_permission() internally to
ensure that the caller is privileged over the inode of the base dentry
they are trying to lookup under. So the permission checking here is
currently wrong.

Linux v5.15 will gain a new lookup helper lookup_one() that does take
idmappings into account. I've added it as part of my patch series to
make btrfs support idmapped mounts. The new helper is in linux-next as
part of David's (Sterba) btrfs for-next branch as commit
c972214c133b ("namei: add mapping aware lookup helper").

I've said it before during one of my first reviews: I would very much
recommend adding fstests to [1]. It already seems to have very
rudimentary cifs support. There is a completely generic idmapped mount
testsuite that supports idmapped mounts.

[1]: https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/
Cc: Colin Ian King <colin.king@canonical.com>
Cc: Steve French <stfrench@microsoft.com>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Namjae Jeon <namjae.jeon@samsung.com>
Cc: Hyunchul Lee <hyc.lee@gmail.com>
Cc: Sergey Senozhatsky <senozhatsky@chromium.org>
Cc: David Sterba <dsterba@suse.com>
Cc: linux-cifs@vger.kernel.org
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
2021-09-03 23:29:44 -05:00
..
mgmt ksmbd: reorder and document on-disk and netlink structures in headers 2021-06-30 14:47:24 +09:00
asn1.c
asn1.h
auth.c
auth.h
connection.c ksmbd: fix typo in comment 2021-07-15 10:25:30 +09:00
connection.h ksmbd: add support for negotiating signing algorithm 2021-07-22 09:56:02 +09:00
crypto_ctx.c
crypto_ctx.h
glob.h
Kconfig ksmbd: remove select FS_POSIX_ACL in Kconfig 2021-08-13 08:18:10 +09:00
ksmbd_netlink.h ksmbd: reorder and document on-disk and netlink structures in headers 2021-06-30 14:47:24 +09:00
ksmbd_spnego_negtokeninit.asn1
ksmbd_spnego_negtokentarg.asn1
ksmbd_work.c ksmbd: reorder and document on-disk and netlink structures in headers 2021-06-30 14:47:24 +09:00
ksmbd_work.h ksmbd: change data type of volatile/persistent id to u64 2021-07-09 08:23:16 +09:00
Makefile
misc.c
misc.h
ndr.c ksmbd: fix __write_overflow warning in ndr_read_string 2021-08-27 14:03:49 -05:00
ndr.h ksmbd: add user namespace support 2021-07-02 16:27:10 +09:00
nterr.h
ntlmssp.h
oplock.c ksmbd: remove unneeded check_context_err 2021-07-13 10:08:32 +09:00
oplock.h ksmbd: remove SMB1 oplock level macros 2021-06-30 14:43:51 +09:00
server.c ksmbd: set STATUS_INVALID_PARAMETER error status if credit charge is invalid 2021-07-19 16:20:02 +09:00
server.h ksmbd: change server config string index to enumeration 2021-06-30 14:44:01 +09:00
smb2misc.c ksmbd: move credit charge verification over smb2 request size verification 2021-07-19 16:20:04 +09:00
smb2ops.c ksmbd: add support for negotiating signing algorithm 2021-07-22 09:56:02 +09:00
smb2pdu.c ksmbd: fix lookup on idmapped mounts 2021-09-03 23:29:44 -05:00
smb2pdu.h ksmbd: change int data type to boolean 2021-08-13 08:18:03 +09:00
smb_common.c ksmbd: Fix multi-protocol negotiation 2021-08-13 08:18:00 +09:00
smb_common.h ksmbd: change int data type to boolean 2021-08-13 08:18:03 +09:00
smbacl.c ksmbd: fix permission check issue on chown and chmod 2021-08-21 23:26:34 +09:00
smbacl.h ksmbd: add user namespace support 2021-07-02 16:27:10 +09:00
smbfsctl.h
smbstatus.h
transport_ipc.c ksmbd: fix kernel oops in ksmbd_rpc_ioctl/rap() 2021-07-03 08:02:18 +09:00
transport_ipc.h
transport_rdma.c ksmbd: smbd: fix kernel oops during server shutdown 2021-08-13 08:18:13 +09:00
transport_rdma.h ksmbd: fix typo of MS-SMBD 2021-07-22 09:55:58 +09:00
transport_tcp.c ksmbd: Fix potential memory leak in tcp_destroy_socket() 2021-07-23 13:10:55 +09:00
transport_tcp.h
unicode.c
unicode.h
uniupr.h
vfs_cache.c ksmbd: free ksmbd_lock when file is closed 2021-07-10 16:23:50 +09:00
vfs_cache.h ksmbd: free ksmbd_lock when file is closed 2021-07-10 16:23:50 +09:00
vfs.c ksmbd: fix lookup on idmapped mounts 2021-09-03 23:29:44 -05:00
vfs.h ksmbd: fix lookup on idmapped mounts 2021-09-03 23:29:44 -05:00
xattr.h ksmbd: reorder and document on-disk and netlink structures in headers 2021-06-30 14:47:24 +09:00