|
Kmods SIG |
d83023 |
From 8a80b8c6acb10a4659ed0566d7de3ab883ed5a31 Mon Sep 17 00:00:00 2001
|
|
Kmods SIG |
d83023 |
From: Peter Georg <peter.georg@physik.uni-regensburg.de>
|
|
Kmods SIG |
d83023 |
Date: Mon, 18 Oct 2021 16:44:57 +0200
|
|
Kmods SIG |
d83023 |
Subject: [PATCH 9001/9005] Remove idmap mount support
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
---
|
|
Kmods SIG |
d83023 |
src/file.c | 12 ++++++------
|
|
Kmods SIG |
d83023 |
src/inode.c | 6 +++---
|
|
Kmods SIG |
d83023 |
src/namei.c | 18 +++++++++---------
|
|
Kmods SIG |
d83023 |
src/ntfs_fs.h | 14 +++++++-------
|
|
Kmods SIG |
d83023 |
src/super.c | 7 +++----
|
|
Kmods SIG |
d83023 |
src/xattr.c | 31 +++++++++++++++----------------
|
|
Kmods SIG |
d83023 |
6 files changed, 43 insertions(+), 45 deletions(-)
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
diff --git a/src/file.c b/src/file.c
|
|
Kmods SIG |
d83023 |
index 43b1451..ee9a472 100644
|
|
Kmods SIG |
d83023 |
--- a/src/file.c
|
|
Kmods SIG |
d83023 |
+++ b/src/file.c
|
|
Kmods SIG |
d83023 |
@@ -69,7 +69,7 @@ static long ntfs_compat_ioctl(struct file *filp, u32 cmd, unsigned long arg)
|
|
Kmods SIG |
d83023 |
/*
|
|
Kmods SIG |
d83023 |
* ntfs_getattr - inode_operations::getattr
|
|
Kmods SIG |
d83023 |
*/
|
|
Kmods SIG |
d83023 |
-int ntfs_getattr(struct user_namespace *mnt_userns, const struct path *path,
|
|
Kmods SIG |
d83023 |
+int ntfs_getattr(const struct path *path,
|
|
Kmods SIG |
d83023 |
struct kstat *stat, u32 request_mask, u32 flags)
|
|
Kmods SIG |
d83023 |
{
|
|
Kmods SIG |
d83023 |
struct inode *inode = d_inode(path->dentry);
|
|
Kmods SIG |
d83023 |
@@ -83,7 +83,7 @@ int ntfs_getattr(struct user_namespace *mnt_userns, const struct path *path,
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
stat->attributes_mask |= STATX_ATTR_COMPRESSED | STATX_ATTR_ENCRYPTED;
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
- generic_fillattr(mnt_userns, inode, stat);
|
|
Kmods SIG |
d83023 |
+ generic_fillattr(inode, stat);
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
stat->result_mask |= STATX_BTIME;
|
|
Kmods SIG |
d83023 |
stat->btime = ni->i_crtime;
|
|
Kmods SIG |
d83023 |
@@ -728,7 +728,7 @@ out:
|
|
Kmods SIG |
d83023 |
/*
|
|
Kmods SIG |
d83023 |
* ntfs3_setattr - inode_operations::setattr
|
|
Kmods SIG |
d83023 |
*/
|
|
Kmods SIG |
d83023 |
-int ntfs3_setattr(struct user_namespace *mnt_userns, struct dentry *dentry,
|
|
Kmods SIG |
d83023 |
+int ntfs3_setattr(struct dentry *dentry,
|
|
Kmods SIG |
d83023 |
struct iattr *attr)
|
|
Kmods SIG |
d83023 |
{
|
|
Kmods SIG |
d83023 |
struct super_block *sb = dentry->d_sb;
|
|
Kmods SIG |
d83023 |
@@ -747,7 +747,7 @@ int ntfs3_setattr(struct user_namespace *mnt_userns, struct dentry *dentry,
|
|
Kmods SIG |
d83023 |
ia_valid = attr->ia_valid;
|
|
Kmods SIG |
d83023 |
}
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
- err = setattr_prepare(mnt_userns, dentry, attr);
|
|
Kmods SIG |
d83023 |
+ err = setattr_prepare(dentry, attr);
|
|
Kmods SIG |
d83023 |
if (err)
|
|
Kmods SIG |
d83023 |
goto out;
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
@@ -772,10 +772,10 @@ int ntfs3_setattr(struct user_namespace *mnt_userns, struct dentry *dentry,
|
|
Kmods SIG |
d83023 |
ni->ni_flags |= NI_FLAG_UPDATE_PARENT;
|
|
Kmods SIG |
d83023 |
}
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
- setattr_copy(mnt_userns, inode, attr);
|
|
Kmods SIG |
d83023 |
+ setattr_copy(inode, attr);
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
if (mode != inode->i_mode) {
|
|
Kmods SIG |
d83023 |
- err = ntfs_acl_chmod(mnt_userns, inode);
|
|
Kmods SIG |
d83023 |
+ err = ntfs_acl_chmod(inode);
|
|
Kmods SIG |
d83023 |
if (err)
|
|
Kmods SIG |
d83023 |
goto out;
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
diff --git a/src/inode.c b/src/inode.c
|
|
Kmods SIG |
d83023 |
index 859951d..69eef0f 100644
|
|
Kmods SIG |
d83023 |
--- a/src/inode.c
|
|
Kmods SIG |
d83023 |
+++ b/src/inode.c
|
|
Kmods SIG |
d83023 |
@@ -1163,7 +1163,7 @@ out:
|
|
Kmods SIG |
d83023 |
return ERR_PTR(err);
|
|
Kmods SIG |
d83023 |
}
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
-struct inode *ntfs_create_inode(struct user_namespace *mnt_userns,
|
|
Kmods SIG |
d83023 |
+struct inode *ntfs_create_inode(
|
|
Kmods SIG |
d83023 |
struct inode *dir, struct dentry *dentry,
|
|
Kmods SIG |
d83023 |
const struct cpu_str *uni, umode_t mode,
|
|
Kmods SIG |
d83023 |
dev_t dev, const char *symname, u32 size,
|
|
Kmods SIG |
d83023 |
@@ -1280,7 +1280,7 @@ struct inode *ntfs_create_inode(struct user_namespace *mnt_userns,
|
|
Kmods SIG |
d83023 |
goto out3;
|
|
Kmods SIG |
d83023 |
}
|
|
Kmods SIG |
d83023 |
inode = &ni->vfs_inode;
|
|
Kmods SIG |
d83023 |
- inode_init_owner(mnt_userns, inode, dir, mode);
|
|
Kmods SIG |
d83023 |
+ inode_init_owner(inode, dir, mode);
|
|
Kmods SIG |
d83023 |
mode = inode->i_mode;
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
inode->i_atime = inode->i_mtime = inode->i_ctime = ni->i_crtime =
|
|
Kmods SIG |
d83023 |
@@ -1579,7 +1579,7 @@ struct inode *ntfs_create_inode(struct user_namespace *mnt_userns,
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
#ifdef CONFIG_NTFS3_FS_POSIX_ACL
|
|
Kmods SIG |
d83023 |
if (!S_ISLNK(mode) && (sb->s_flags & SB_POSIXACL)) {
|
|
Kmods SIG |
d83023 |
- err = ntfs_init_acl(mnt_userns, inode, dir);
|
|
Kmods SIG |
d83023 |
+ err = ntfs_init_acl(inode, dir);
|
|
Kmods SIG |
d83023 |
if (err)
|
|
Kmods SIG |
d83023 |
goto out7;
|
|
Kmods SIG |
d83023 |
} else
|
|
Kmods SIG |
d83023 |
diff --git a/src/namei.c b/src/namei.c
|
|
Kmods SIG |
d83023 |
index bc74121..7e346b8 100644
|
|
Kmods SIG |
d83023 |
--- a/src/namei.c
|
|
Kmods SIG |
d83023 |
+++ b/src/namei.c
|
|
Kmods SIG |
d83023 |
@@ -92,12 +92,12 @@ static struct dentry *ntfs_lookup(struct inode *dir, struct dentry *dentry,
|
|
Kmods SIG |
d83023 |
/*
|
|
Kmods SIG |
d83023 |
* ntfs_create - inode_operations::create
|
|
Kmods SIG |
d83023 |
*/
|
|
Kmods SIG |
d83023 |
-static int ntfs_create(struct user_namespace *mnt_userns, struct inode *dir,
|
|
Kmods SIG |
d83023 |
+static int ntfs_create(struct inode *dir,
|
|
Kmods SIG |
d83023 |
struct dentry *dentry, umode_t mode, bool excl)
|
|
Kmods SIG |
d83023 |
{
|
|
Kmods SIG |
d83023 |
struct inode *inode;
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
- inode = ntfs_create_inode(mnt_userns, dir, dentry, NULL, S_IFREG | mode,
|
|
Kmods SIG |
d83023 |
+ inode = ntfs_create_inode(dir, dentry, NULL, S_IFREG | mode,
|
|
Kmods SIG |
d83023 |
0, NULL, 0, NULL);
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
return IS_ERR(inode) ? PTR_ERR(inode) : 0;
|
|
Kmods SIG |
d83023 |
@@ -108,12 +108,12 @@ static int ntfs_create(struct user_namespace *mnt_userns, struct inode *dir,
|
|
Kmods SIG |
d83023 |
*
|
|
Kmods SIG |
d83023 |
* inode_operations::mknod
|
|
Kmods SIG |
d83023 |
*/
|
|
Kmods SIG |
d83023 |
-static int ntfs_mknod(struct user_namespace *mnt_userns, struct inode *dir,
|
|
Kmods SIG |
d83023 |
+static int ntfs_mknod(struct inode *dir,
|
|
Kmods SIG |
d83023 |
struct dentry *dentry, umode_t mode, dev_t rdev)
|
|
Kmods SIG |
d83023 |
{
|
|
Kmods SIG |
d83023 |
struct inode *inode;
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
- inode = ntfs_create_inode(mnt_userns, dir, dentry, NULL, mode, rdev,
|
|
Kmods SIG |
d83023 |
+ inode = ntfs_create_inode(dir, dentry, NULL, mode, rdev,
|
|
Kmods SIG |
d83023 |
NULL, 0, NULL);
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
return IS_ERR(inode) ? PTR_ERR(inode) : 0;
|
|
Kmods SIG |
d83023 |
@@ -181,13 +181,13 @@ static int ntfs_unlink(struct inode *dir, struct dentry *dentry)
|
|
Kmods SIG |
d83023 |
/*
|
|
Kmods SIG |
d83023 |
* ntfs_symlink - inode_operations::symlink
|
|
Kmods SIG |
d83023 |
*/
|
|
Kmods SIG |
d83023 |
-static int ntfs_symlink(struct user_namespace *mnt_userns, struct inode *dir,
|
|
Kmods SIG |
d83023 |
+static int ntfs_symlink(struct inode *dir,
|
|
Kmods SIG |
d83023 |
struct dentry *dentry, const char *symname)
|
|
Kmods SIG |
d83023 |
{
|
|
Kmods SIG |
d83023 |
u32 size = strlen(symname);
|
|
Kmods SIG |
d83023 |
struct inode *inode;
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
- inode = ntfs_create_inode(mnt_userns, dir, dentry, NULL, S_IFLNK | 0777,
|
|
Kmods SIG |
d83023 |
+ inode = ntfs_create_inode(dir, dentry, NULL, S_IFLNK | 0777,
|
|
Kmods SIG |
d83023 |
0, symname, size, NULL);
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
return IS_ERR(inode) ? PTR_ERR(inode) : 0;
|
|
Kmods SIG |
d83023 |
@@ -196,12 +196,12 @@ static int ntfs_symlink(struct user_namespace *mnt_userns, struct inode *dir,
|
|
Kmods SIG |
d83023 |
/*
|
|
Kmods SIG |
d83023 |
* ntfs_mkdir- inode_operations::mkdir
|
|
Kmods SIG |
d83023 |
*/
|
|
Kmods SIG |
d83023 |
-static int ntfs_mkdir(struct user_namespace *mnt_userns, struct inode *dir,
|
|
Kmods SIG |
d83023 |
+static int ntfs_mkdir(struct inode *dir,
|
|
Kmods SIG |
d83023 |
struct dentry *dentry, umode_t mode)
|
|
Kmods SIG |
d83023 |
{
|
|
Kmods SIG |
d83023 |
struct inode *inode;
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
- inode = ntfs_create_inode(mnt_userns, dir, dentry, NULL, S_IFDIR | mode,
|
|
Kmods SIG |
d83023 |
+ inode = ntfs_create_inode(dir, dentry, NULL, S_IFDIR | mode,
|
|
Kmods SIG |
d83023 |
0, NULL, 0, NULL);
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
return IS_ERR(inode) ? PTR_ERR(inode) : 0;
|
|
Kmods SIG |
d83023 |
@@ -227,7 +227,7 @@ static int ntfs_rmdir(struct inode *dir, struct dentry *dentry)
|
|
Kmods SIG |
d83023 |
/*
|
|
Kmods SIG |
d83023 |
* ntfs_rename - inode_operations::rename
|
|
Kmods SIG |
d83023 |
*/
|
|
Kmods SIG |
d83023 |
-static int ntfs_rename(struct user_namespace *mnt_userns, struct inode *dir,
|
|
Kmods SIG |
d83023 |
+static int ntfs_rename(struct inode *dir,
|
|
Kmods SIG |
d83023 |
struct dentry *dentry, struct inode *new_dir,
|
|
Kmods SIG |
d83023 |
struct dentry *new_dentry, u32 flags)
|
|
Kmods SIG |
d83023 |
{
|
|
Kmods SIG |
d83023 |
diff --git a/src/ntfs_fs.h b/src/ntfs_fs.h
|
|
Kmods SIG |
d83023 |
index 8aaec7e..040fa56 100644
|
|
Kmods SIG |
d83023 |
--- a/src/ntfs_fs.h
|
|
Kmods SIG |
d83023 |
+++ b/src/ntfs_fs.h
|
|
Kmods SIG |
d83023 |
@@ -486,11 +486,11 @@ bool dir_is_empty(struct inode *dir);
|
|
Kmods SIG |
d83023 |
extern const struct file_operations ntfs_dir_operations;
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
/* Globals from file.c */
|
|
Kmods SIG |
d83023 |
-int ntfs_getattr(struct user_namespace *mnt_userns, const struct path *path,
|
|
Kmods SIG |
d83023 |
+int ntfs_getattr(const struct path *path,
|
|
Kmods SIG |
d83023 |
struct kstat *stat, u32 request_mask, u32 flags);
|
|
Kmods SIG |
d83023 |
void ntfs_sparse_cluster(struct inode *inode, struct page *page0, CLST vcn,
|
|
Kmods SIG |
d83023 |
CLST len);
|
|
Kmods SIG |
d83023 |
-int ntfs3_setattr(struct user_namespace *mnt_userns, struct dentry *dentry,
|
|
Kmods SIG |
d83023 |
+int ntfs3_setattr(struct dentry *dentry,
|
|
Kmods SIG |
d83023 |
struct iattr *attr);
|
|
Kmods SIG |
d83023 |
int ntfs_file_open(struct inode *inode, struct file *file);
|
|
Kmods SIG |
d83023 |
int ntfs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
|
|
Kmods SIG |
d83023 |
@@ -695,7 +695,7 @@ int ntfs_sync_inode(struct inode *inode);
|
|
Kmods SIG |
d83023 |
int ntfs_flush_inodes(struct super_block *sb, struct inode *i1,
|
|
Kmods SIG |
d83023 |
struct inode *i2);
|
|
Kmods SIG |
d83023 |
int inode_write_data(struct inode *inode, const void *data, size_t bytes);
|
|
Kmods SIG |
d83023 |
-struct inode *ntfs_create_inode(struct user_namespace *mnt_userns,
|
|
Kmods SIG |
d83023 |
+struct inode *ntfs_create_inode(
|
|
Kmods SIG |
d83023 |
struct inode *dir, struct dentry *dentry,
|
|
Kmods SIG |
d83023 |
const struct cpu_str *uni, umode_t mode,
|
|
Kmods SIG |
d83023 |
dev_t dev, const char *symname, u32 size,
|
|
Kmods SIG |
d83023 |
@@ -837,17 +837,17 @@ int ntfs_cmp_names_cpu(const struct cpu_str *uni1, const struct le_str *uni2,
|
|
Kmods SIG |
d83023 |
/* globals from xattr.c */
|
|
Kmods SIG |
d83023 |
#ifdef CONFIG_NTFS3_FS_POSIX_ACL
|
|
Kmods SIG |
d83023 |
struct posix_acl *ntfs_get_acl(struct inode *inode, int type, bool rcu);
|
|
Kmods SIG |
d83023 |
-int ntfs_set_acl(struct user_namespace *mnt_userns, struct inode *inode,
|
|
Kmods SIG |
d83023 |
+int ntfs_set_acl(struct inode *inode,
|
|
Kmods SIG |
d83023 |
struct posix_acl *acl, int type);
|
|
Kmods SIG |
d83023 |
-int ntfs_init_acl(struct user_namespace *mnt_userns, struct inode *inode,
|
|
Kmods SIG |
d83023 |
+int ntfs_init_acl(struct inode *inode,
|
|
Kmods SIG |
d83023 |
struct inode *dir);
|
|
Kmods SIG |
d83023 |
#else
|
|
Kmods SIG |
d83023 |
#define ntfs_get_acl NULL
|
|
Kmods SIG |
d83023 |
#define ntfs_set_acl NULL
|
|
Kmods SIG |
d83023 |
#endif
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
-int ntfs_acl_chmod(struct user_namespace *mnt_userns, struct inode *inode);
|
|
Kmods SIG |
d83023 |
-int ntfs_permission(struct user_namespace *mnt_userns, struct inode *inode,
|
|
Kmods SIG |
d83023 |
+int ntfs_acl_chmod(struct inode *inode);
|
|
Kmods SIG |
d83023 |
+int ntfs_permission(struct inode *inode,
|
|
Kmods SIG |
d83023 |
int mask);
|
|
Kmods SIG |
d83023 |
ssize_t ntfs_listxattr(struct dentry *dentry, char *buffer, size_t size);
|
|
Kmods SIG |
d83023 |
extern const struct xattr_handler *ntfs_xattr_handlers[];
|
|
Kmods SIG |
d83023 |
diff --git a/src/super.c b/src/super.c
|
|
Kmods SIG |
d83023 |
index d41d769..97cfd3f 100644
|
|
Kmods SIG |
d83023 |
--- a/src/super.c
|
|
Kmods SIG |
d83023 |
+++ b/src/super.c
|
|
Kmods SIG |
d83023 |
@@ -511,12 +511,11 @@ static int ntfs_show_options(struct seq_file *m, struct dentry *root)
|
|
Kmods SIG |
d83023 |
struct super_block *sb = root->d_sb;
|
|
Kmods SIG |
d83023 |
struct ntfs_sb_info *sbi = sb->s_fs_info;
|
|
Kmods SIG |
d83023 |
struct ntfs_mount_options *opts = sbi->options;
|
|
Kmods SIG |
d83023 |
- struct user_namespace *user_ns = seq_user_ns(m);
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
seq_printf(m, ",uid=%u",
|
|
Kmods SIG |
d83023 |
- from_kuid_munged(user_ns, opts->fs_uid));
|
|
Kmods SIG |
d83023 |
+ from_kuid_munged(&init_user_ns, opts->fs_uid));
|
|
Kmods SIG |
d83023 |
seq_printf(m, ",gid=%u",
|
|
Kmods SIG |
d83023 |
- from_kgid_munged(user_ns, opts->fs_gid));
|
|
Kmods SIG |
d83023 |
+ from_kgid_munged(&init_user_ns, opts->fs_gid));
|
|
Kmods SIG |
d83023 |
if (opts->fmask)
|
|
Kmods SIG |
d83023 |
seq_printf(m, ",fmask=%04o", ~opts->fs_fmask_inv);
|
|
Kmods SIG |
d83023 |
if (opts->dmask)
|
|
Kmods SIG |
d83023 |
@@ -1435,7 +1434,7 @@ static struct file_system_type ntfs_fs_type = {
|
|
Kmods SIG |
d83023 |
.init_fs_context = ntfs_init_fs_context,
|
|
Kmods SIG |
d83023 |
.parameters = ntfs_fs_parameters,
|
|
Kmods SIG |
d83023 |
.kill_sb = kill_block_super,
|
|
Kmods SIG |
d83023 |
- .fs_flags = FS_REQUIRES_DEV | FS_ALLOW_IDMAP,
|
|
Kmods SIG |
d83023 |
+ .fs_flags = FS_REQUIRES_DEV,
|
|
Kmods SIG |
d83023 |
};
|
|
Kmods SIG |
d83023 |
// clang-format on
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
diff --git a/src/xattr.c b/src/xattr.c
|
|
Kmods SIG |
d83023 |
index afd0dda..110fecb 100644
|
|
Kmods SIG |
d83023 |
--- a/src/xattr.c
|
|
Kmods SIG |
d83023 |
+++ b/src/xattr.c
|
|
Kmods SIG |
d83023 |
@@ -476,7 +476,7 @@ out:
|
|
Kmods SIG |
d83023 |
}
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
#ifdef CONFIG_NTFS3_FS_POSIX_ACL
|
|
Kmods SIG |
d83023 |
-static struct posix_acl *ntfs_get_acl_ex(struct user_namespace *mnt_userns,
|
|
Kmods SIG |
d83023 |
+static struct posix_acl *ntfs_get_acl_ex(
|
|
Kmods SIG |
d83023 |
struct inode *inode, int type,
|
|
Kmods SIG |
d83023 |
int locked)
|
|
Kmods SIG |
d83023 |
{
|
|
Kmods SIG |
d83023 |
@@ -512,7 +512,7 @@ static struct posix_acl *ntfs_get_acl_ex(struct user_namespace *mnt_userns,
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
/* Translate extended attribute to acl. */
|
|
Kmods SIG |
d83023 |
if (err >= 0) {
|
|
Kmods SIG |
d83023 |
- acl = posix_acl_from_xattr(mnt_userns, buf, err);
|
|
Kmods SIG |
d83023 |
+ acl = posix_acl_from_xattr(&init_user_ns, buf, err);
|
|
Kmods SIG |
d83023 |
} else if (err == -ENODATA) {
|
|
Kmods SIG |
d83023 |
acl = NULL;
|
|
Kmods SIG |
d83023 |
} else {
|
|
Kmods SIG |
d83023 |
@@ -536,10 +536,10 @@ struct posix_acl *ntfs_get_acl(struct inode *inode, int type, bool rcu)
|
|
Kmods SIG |
d83023 |
return ERR_PTR(-ECHILD);
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
/* TODO: init_user_ns? */
|
|
Kmods SIG |
d83023 |
- return ntfs_get_acl_ex(&init_user_ns, inode, type, 0);
|
|
Kmods SIG |
d83023 |
+ return ntfs_get_acl_ex(inode, type, 0);
|
|
Kmods SIG |
d83023 |
}
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
-static noinline int ntfs_set_acl_ex(struct user_namespace *mnt_userns,
|
|
Kmods SIG |
d83023 |
+static noinline int ntfs_set_acl_ex(
|
|
Kmods SIG |
d83023 |
struct inode *inode, struct posix_acl *acl,
|
|
Kmods SIG |
d83023 |
int type)
|
|
Kmods SIG |
d83023 |
{
|
|
Kmods SIG |
d83023 |
@@ -557,7 +557,7 @@ static noinline int ntfs_set_acl_ex(struct user_namespace *mnt_userns,
|
|
Kmods SIG |
d83023 |
if (acl) {
|
|
Kmods SIG |
d83023 |
umode_t mode = inode->i_mode;
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
- err = posix_acl_update_mode(mnt_userns, inode, &mode,
|
|
Kmods SIG |
d83023 |
+ err = posix_acl_update_mode(inode, &mode,
|
|
Kmods SIG |
d83023 |
&acl;;
|
|
Kmods SIG |
d83023 |
if (err)
|
|
Kmods SIG |
d83023 |
goto out;
|
|
Kmods SIG |
d83023 |
@@ -592,7 +592,7 @@ static noinline int ntfs_set_acl_ex(struct user_namespace *mnt_userns,
|
|
Kmods SIG |
d83023 |
value = kmalloc(size, GFP_NOFS);
|
|
Kmods SIG |
d83023 |
if (!value)
|
|
Kmods SIG |
d83023 |
return -ENOMEM;
|
|
Kmods SIG |
d83023 |
- err = posix_acl_to_xattr(mnt_userns, acl, value, size);
|
|
Kmods SIG |
d83023 |
+ err = posix_acl_to_xattr(&init_user_ns, acl, value, size);
|
|
Kmods SIG |
d83023 |
if (err < 0)
|
|
Kmods SIG |
d83023 |
goto out;
|
|
Kmods SIG |
d83023 |
flags = 0;
|
|
Kmods SIG |
d83023 |
@@ -613,10 +613,10 @@ out:
|
|
Kmods SIG |
d83023 |
/*
|
|
Kmods SIG |
d83023 |
* ntfs_set_acl - inode_operations::set_acl
|
|
Kmods SIG |
d83023 |
*/
|
|
Kmods SIG |
d83023 |
-int ntfs_set_acl(struct user_namespace *mnt_userns, struct inode *inode,
|
|
Kmods SIG |
d83023 |
+int ntfs_set_acl(struct inode *inode,
|
|
Kmods SIG |
d83023 |
struct posix_acl *acl, int type)
|
|
Kmods SIG |
d83023 |
{
|
|
Kmods SIG |
d83023 |
- return ntfs_set_acl_ex(mnt_userns, inode, acl, type);
|
|
Kmods SIG |
d83023 |
+ return ntfs_set_acl_ex(inode, acl, type);
|
|
Kmods SIG |
d83023 |
}
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
/*
|
|
Kmods SIG |
d83023 |
@@ -624,7 +624,7 @@ int ntfs_set_acl(struct user_namespace *mnt_userns, struct inode *inode,
|
|
Kmods SIG |
d83023 |
*
|
|
Kmods SIG |
d83023 |
* Called from ntfs_create_inode().
|
|
Kmods SIG |
d83023 |
*/
|
|
Kmods SIG |
d83023 |
-int ntfs_init_acl(struct user_namespace *mnt_userns, struct inode *inode,
|
|
Kmods SIG |
d83023 |
+int ntfs_init_acl(struct inode *inode,
|
|
Kmods SIG |
d83023 |
struct inode *dir)
|
|
Kmods SIG |
d83023 |
{
|
|
Kmods SIG |
d83023 |
struct posix_acl *default_acl, *acl;
|
|
Kmods SIG |
d83023 |
@@ -635,7 +635,7 @@ int ntfs_init_acl(struct user_namespace *mnt_userns, struct inode *inode,
|
|
Kmods SIG |
d83023 |
return err;
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
if (default_acl) {
|
|
Kmods SIG |
d83023 |
- err = ntfs_set_acl_ex(mnt_userns, inode, default_acl,
|
|
Kmods SIG |
d83023 |
+ err = ntfs_set_acl_ex(inode, default_acl,
|
|
Kmods SIG |
d83023 |
ACL_TYPE_DEFAULT);
|
|
Kmods SIG |
d83023 |
posix_acl_release(default_acl);
|
|
Kmods SIG |
d83023 |
} else {
|
|
Kmods SIG |
d83023 |
@@ -646,7 +646,7 @@ int ntfs_init_acl(struct user_namespace *mnt_userns, struct inode *inode,
|
|
Kmods SIG |
d83023 |
inode->i_acl = NULL;
|
|
Kmods SIG |
d83023 |
else {
|
|
Kmods SIG |
d83023 |
if (!err)
|
|
Kmods SIG |
d83023 |
- err = ntfs_set_acl_ex(mnt_userns, inode, acl,
|
|
Kmods SIG |
d83023 |
+ err = ntfs_set_acl_ex(inode, acl,
|
|
Kmods SIG |
d83023 |
ACL_TYPE_ACCESS);
|
|
Kmods SIG |
d83023 |
posix_acl_release(acl);
|
|
Kmods SIG |
d83023 |
}
|
|
Kmods SIG |
d83023 |
@@ -658,7 +658,7 @@ int ntfs_init_acl(struct user_namespace *mnt_userns, struct inode *inode,
|
|
Kmods SIG |
d83023 |
/*
|
|
Kmods SIG |
d83023 |
* ntfs_acl_chmod - Helper for ntfs3_setattr().
|
|
Kmods SIG |
d83023 |
*/
|
|
Kmods SIG |
d83023 |
-int ntfs_acl_chmod(struct user_namespace *mnt_userns, struct inode *inode)
|
|
Kmods SIG |
d83023 |
+int ntfs_acl_chmod(struct inode *inode)
|
|
Kmods SIG |
d83023 |
{
|
|
Kmods SIG |
d83023 |
struct super_block *sb = inode->i_sb;
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
@@ -668,13 +668,13 @@ int ntfs_acl_chmod(struct user_namespace *mnt_userns, struct inode *inode)
|
|
Kmods SIG |
d83023 |
if (S_ISLNK(inode->i_mode))
|
|
Kmods SIG |
d83023 |
return -EOPNOTSUPP;
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
- return posix_acl_chmod(mnt_userns, inode, inode->i_mode);
|
|
Kmods SIG |
d83023 |
+ return posix_acl_chmod(inode, inode->i_mode);
|
|
Kmods SIG |
d83023 |
}
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
/*
|
|
Kmods SIG |
d83023 |
* ntfs_permission - inode_operations::permission
|
|
Kmods SIG |
d83023 |
*/
|
|
Kmods SIG |
d83023 |
-int ntfs_permission(struct user_namespace *mnt_userns, struct inode *inode,
|
|
Kmods SIG |
d83023 |
+int ntfs_permission(struct inode *inode,
|
|
Kmods SIG |
d83023 |
int mask)
|
|
Kmods SIG |
d83023 |
{
|
|
Kmods SIG |
d83023 |
if (ntfs_sb(inode->i_sb)->options->noacsrules) {
|
|
Kmods SIG |
d83023 |
@@ -682,7 +682,7 @@ int ntfs_permission(struct user_namespace *mnt_userns, struct inode *inode,
|
|
Kmods SIG |
d83023 |
return 0;
|
|
Kmods SIG |
d83023 |
}
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
- return generic_permission(mnt_userns, inode, mask);
|
|
Kmods SIG |
d83023 |
+ return generic_permission(inode, mask);
|
|
Kmods SIG |
d83023 |
}
|
|
Kmods SIG |
d83023 |
|
|
Kmods SIG |
d83023 |
/*
|
|
Kmods SIG |
d83023 |
@@ -796,7 +796,6 @@ out:
|
|
Kmods SIG |
d83023 |
* ntfs_setxattr - inode_operations::setxattr
|
|
Kmods SIG |
d83023 |
*/
|
|
Kmods SIG |
d83023 |
static noinline int ntfs_setxattr(const struct xattr_handler *handler,
|
|
Kmods SIG |
d83023 |
- struct user_namespace *mnt_userns,
|
|
Kmods SIG |
d83023 |
struct dentry *de, struct inode *inode,
|
|
Kmods SIG |
d83023 |
const char *name, const void *value,
|
|
Kmods SIG |
d83023 |
size_t size, int flags)
|
|
Kmods SIG |
d83023 |
--
|
|
Kmods SIG |
d83023 |
2.31.1
|
|
Kmods SIG |
d83023 |
|