forked from Minki/linux
af34983e83
For user namespace support, call vfs functions with struct user_namespace got from struct path. This patch have been tested mannually as below. Create an id-mapped mount using the mount-idmapped utility (https://github.com/brauner/mount-idmapped). $ mount-idmapped --map-mount b:1003:1002:1 /home/foo <EXPORT DIR>/foo (the user, "foo" is 1003, and the user "bar" is 1002). And mount the export directory using cifs with the user, "bar". succeed to create/delete/stat/read/write files and directory in the <EXPORT DIR>/foo. But fail with a bind mount for /home/foo. Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Hyunchul Lee <hyc.lee@gmail.com> Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com> Signed-off-by: Steve French <stfrench@microsoft.com>
23 lines
743 B
C
23 lines
743 B
C
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
/*
|
|
* Copyright (C) 2020 Samsung Electronics Co., Ltd.
|
|
* Author(s): Namjae Jeon <linkinjeon@kernel.org>
|
|
*/
|
|
|
|
struct ndr {
|
|
char *data;
|
|
int offset;
|
|
int length;
|
|
};
|
|
|
|
#define NDR_NTSD_OFFSETOF 0xA0
|
|
|
|
int ndr_encode_dos_attr(struct ndr *n, struct xattr_dos_attrib *da);
|
|
int ndr_decode_dos_attr(struct ndr *n, struct xattr_dos_attrib *da);
|
|
int ndr_encode_posix_acl(struct ndr *n, struct user_namespace *user_ns,
|
|
struct inode *inode, struct xattr_smb_acl *acl,
|
|
struct xattr_smb_acl *def_acl);
|
|
int ndr_encode_v4_ntacl(struct ndr *n, struct xattr_ntacl *acl);
|
|
int ndr_encode_v3_ntacl(struct ndr *n, struct xattr_ntacl *acl);
|
|
int ndr_decode_v4_ntacl(struct ndr *n, struct xattr_ntacl *acl);
|