lkml.org 
[lkml]   [2023]   [Feb]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
Subject[PATCH 02/11] fs/ntfs3: Remove noacsrules
From
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@paragon-software.com>
---
 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
\
 
 \ /
  Last update: 2023-03-27 00:24    [W:0.110 / U:0.372 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site