[PATCH 02/11] fs/ntfs3: Remove noacsrules
From: Konstantin Komarov
Date: Wed Feb 15 2023 - 08:35:07 EST
Currently, this option does not work properly. Its use leads to unstable
results.
If we figure out how to implement it without errors, we will add it later.
Signed-off-by: Konstantin Komarov <almaz.alexandrovich@xxxxxxxxxxxxxxxxxxxx>
---
Documentation/filesystems/ntfs3.rst | 11 -----------
fs/ntfs3/file.c | 11 -----------
fs/ntfs3/inode.c | 1 -
fs/ntfs3/namei.c | 1 -
fs/ntfs3/ntfs_fs.h | 3 ---
fs/ntfs3/super.c | 9 +--------
fs/ntfs3/xattr.c | 14 --------------
7 files changed, 1 insertion(+), 49 deletions(-)
diff --git a/Documentation/filesystems/ntfs3.rst
b/Documentation/filesystems/ntfs3.rst
index 5aa102bd72c2..f0cf05cad2ba 100644
--- a/Documentation/filesystems/ntfs3.rst
+++ b/Documentation/filesystems/ntfs3.rst
@@ -61,17 +61,6 @@ this table marked with no it means default is without
**no**.
directories, fmask applies only to files and dmask only to
directories.
* - fmask=
- * - noacsrules
- - "No access rules" mount option sets access rights for
files/folders to
- 777 and owner/group to root. This mount option absorbs all other
- permissions.
-
- - Permissions change for files/folders will be reported as
successful,
- but they will remain 777.
-
- - Owner/group change will be reported as successful, butthey
will stay
- as root.
-
* - nohidden
- Files with the Windows-specific HIDDEN (FILE_ATTRIBUTE_HIDDEN)
attribute
will not be shown under Linux.
diff --git a/fs/ntfs3/file.c b/fs/ntfs3/file.c
index d37df7376543..9cef189fc0c5 100644
--- a/fs/ntfs3/file.c
+++ b/fs/ntfs3/file.c
@@ -654,22 +654,12 @@ static long ntfs_fallocate(struct file *file, int
mode, loff_t vbo, loff_t len)
int ntfs3_setattr(struct user_namespace *mnt_userns, struct dentry
*dentry,
struct iattr *attr)
{
- struct super_block *sb = dentry->d_sb;
- struct ntfs_sb_info *sbi = sb->s_fs_info;
struct inode *inode = d_inode(dentry);
struct ntfs_inode *ni = ntfs_i(inode);
u32 ia_valid = attr->ia_valid;
umode_t mode = inode->i_mode;
int err;
- if (sbi->options->noacsrules) {
- /* "No access rules" - Force any changes of time etc. */
- attr->ia_valid |= ATTR_FORCE;
- /* and disable for editing some attributes. */
- attr->ia_valid &= ~(ATTR_UID | ATTR_GID | ATTR_MODE);
- ia_valid = attr->ia_valid;
- }
-
err = setattr_prepare(mnt_userns, dentry, attr);
if (err)
goto out;
@@ -1153,7 +1143,6 @@ const struct inode_operations
ntfs_file_inode_operations = {
.getattr = ntfs_getattr,
.setattr = ntfs3_setattr,
.listxattr = ntfs_listxattr,
- .permission = ntfs_permission,
.get_inode_acl = ntfs_get_acl,
.set_acl = ntfs_set_acl,
.fiemap = ntfs_fiemap,
diff --git a/fs/ntfs3/inode.c b/fs/ntfs3/inode.c
index 5e06299591ed..51e342ad79fd 100644
--- a/fs/ntfs3/inode.c
+++ b/fs/ntfs3/inode.c
@@ -2070,7 +2070,6 @@ const struct inode_operations
ntfs_link_inode_operations = {
.get_link = ntfs_get_link,
.setattr = ntfs3_setattr,
.listxattr = ntfs_listxattr,
- .permission = ntfs_permission,
};
const struct address_space_operations ntfs_aops = {
diff --git a/fs/ntfs3/namei.c b/fs/ntfs3/namei.c
index 53ddea219e37..5d5fe2f1f77c 100644
--- a/fs/ntfs3/namei.c
+++ b/fs/ntfs3/namei.c
@@ -607,7 +607,6 @@ const struct inode_operations
ntfs_dir_inode_operations = {
.rmdir = ntfs_rmdir,
.mknod = ntfs_mknod,
.rename = ntfs_rename,
- .permission = ntfs_permission,
.get_inode_acl = ntfs_get_acl,
.set_acl = ntfs_set_acl,
.setattr = ntfs3_setattr,
diff --git a/fs/ntfs3/ntfs_fs.h b/fs/ntfs3/ntfs_fs.h
index 2050eb3f6a5a..556b76f526cb 100644
--- a/fs/ntfs3/ntfs_fs.h
+++ b/fs/ntfs3/ntfs_fs.h
@@ -100,7 +100,6 @@ struct ntfs_mount_options {
unsigned hide_dot_files : 1; /* Set hidden flag on dot files. */
unsigned windows_names : 1; /* Disallow names forbidden by Windows. */
unsigned force : 1; /* RW mount dirty volume. */
- unsigned noacsrules : 1; /* Exclude acs rules. */
unsigned prealloc : 1; /* Preallocate space when file is growing. */
unsigned nocase : 1; /* case insensitive. */
};
@@ -868,8 +867,6 @@ int ntfs_init_acl(struct user_namespace *mnt_userns,
struct inode *inode,
#endif
int ntfs_acl_chmod(struct user_namespace *mnt_userns, struct dentry
*dentry);
-int ntfs_permission(struct user_namespace *mnt_userns, struct inode *inode,
- int mask);
ssize_t ntfs_listxattr(struct dentry *dentry, char *buffer, size_t size);
extern const struct xattr_handler *ntfs_xattr_handlers[];
diff --git a/fs/ntfs3/super.c b/fs/ntfs3/super.c
index 19d0889b131f..10c019ef7da3 100644
--- a/fs/ntfs3/super.c
+++ b/fs/ntfs3/super.c
@@ -253,7 +253,6 @@ enum Opt {
Opt_acl,
Opt_iocharset,
Opt_prealloc,
- Opt_noacsrules,
Opt_nocase,
Opt_err,
};
@@ -274,7 +273,6 @@ static const struct fs_parameter_spec
ntfs_fs_parameters[] = {
fsparam_flag_no("acl", Opt_acl),
fsparam_flag_no("showmeta", Opt_showmeta),
fsparam_flag_no("prealloc", Opt_prealloc),
- fsparam_flag_no("acsrules", Opt_noacsrules),
fsparam_flag_no("nocase", Opt_nocase),
fsparam_string("iocharset", Opt_iocharset),
{}
@@ -387,9 +385,6 @@ static int ntfs_fs_parse_param(struct fs_context *fc,
case Opt_prealloc:
opts->prealloc = result.negated ? 0 : 1;
break;
- case Opt_noacsrules:
- opts->noacsrules = result.negated ? 1 : 0;
- break;
case Opt_nocase:
opts->nocase = result.negated ? 1 : 0;
break;
@@ -572,8 +567,6 @@ static int ntfs_show_options(struct seq_file *m,
struct dentry *root)
seq_puts(m, ",hide_dot_files");
if (opts->force)
seq_puts(m, ",force");
- if (opts->noacsrules)
- seq_puts(m, ",noacsrules");
if (opts->prealloc)
seq_puts(m, ",prealloc");
if (sb->s_flags & SB_POSIXACL)
@@ -791,7 +784,7 @@ static int ntfs_init_from_boot(struct super_block
*sb, u32 sector_size,
if (boot_sector_size != sector_size) {
ntfs_warn(
sb,
- "Different NTFS' sector size (%u) and media sector size (%u)",
+ "Different NTFS sector size (%u) and media sector size (%u)",
boot_sector_size, sector_size);
dev_size += sector_size - 1;
}
diff --git a/fs/ntfs3/xattr.c b/fs/ntfs3/xattr.c
index 3fa48c8f68d9..c42fbc56eb39 100644
--- a/fs/ntfs3/xattr.c
+++ b/fs/ntfs3/xattr.c
@@ -711,20 +711,6 @@ int ntfs_acl_chmod(struct user_namespace
*mnt_userns, struct dentry *dentry)
return posix_acl_chmod(mnt_userns, dentry, inode->i_mode);
}
-/*
- * ntfs_permission - inode_operations::permission
- */
-int ntfs_permission(struct user_namespace *mnt_userns, struct inode *inode,
- int mask)
-{
- if (ntfs_sb(inode->i_sb)->options->noacsrules) {
- /* "No access rules" mode - Allow all changes. */
- return 0;
- }
-
- return generic_permission(mnt_userns, inode, mask);
-}
-
/*
* ntfs_listxattr - inode_operations::listxattr
*/
--
2.34.1