[02/11] fs/ntfs3: Remove noacsrules

Message ID 331371f5-6c34-65aa-f81e-c27e428b9d4e@paragon-software.com
State New
Headers
Series fs/ntfs3: Bugfix and refactoring |

Commit Message

Konstantin Komarov Feb. 15, 2023, 1:34 p.m. UTC
  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(-)

   */
  

Patch

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