• Christian Brauner's avatar
    ksmbd: fix lookup on idmapped mounts · da1e7ada
    Christian Brauner authored
    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: default avatarChristian Brauner <christian.brauner@ubuntu.com>
    Signed-off-by: default avatarNamjae Jeon <linkinjeon@kernel.org>
    Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
    da1e7ada
vfs.c 44 KB