[08/11] fs/ntfs3: Changed ntfs_get_acl() to use dentry

Message ID 2f017ba3-78a9-211d-2a61-f8a1c90c3cab@paragon-software.com
State New
Headers
Series fs/ntfs3: Bugfix and refactoring |

Commit Message

Konstantin Komarov Feb. 15, 2023, 1:38 p.m. UTC
  ntfs_get_acl changed to match new interface in struct inode_operations.

Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
---
  fs/ntfs3/file.c    |  2 +-
  fs/ntfs3/namei.c   |  4 ++--
  fs/ntfs3/ntfs_fs.h |  3 ++-
  fs/ntfs3/xattr.c   | 26 +++++++++-----------------
  4 files changed, 14 insertions(+), 21 deletions(-)

      size_t name_len;
@@ -545,13 +550,11 @@ static struct posix_acl *ntfs_get_acl_ex(struct 
inode *inode, int type,
          name_len = sizeof(XATTR_NAME_POSIX_ACL_DEFAULT) - 1;
      }

-    if (!locked)
-        ni_lock(ni);
+    ni_lock(ni);

      err = ntfs_get_ea(inode, name, name_len, buf, PATH_MAX, &req);

-    if (!locked)
-        ni_unlock(ni);
+    ni_unlock(ni);

      /* Translate extended attribute to acl. */
      if (err >= 0) {
@@ -570,17 +573,6 @@ static struct posix_acl *ntfs_get_acl_ex(struct 
inode *inode, int type,
      return acl;
  }

-/*
- * ntfs_get_acl - inode_operations::get_acl
- */
-struct posix_acl *ntfs_get_acl(struct inode *inode, int type, bool rcu)
-{
-    if (rcu)
-        return ERR_PTR(-ECHILD);
-
-    return ntfs_get_acl_ex(inode, type, 0);
-}
-
  static noinline int ntfs_set_acl_ex(struct user_namespace *mnt_userns,
                      struct inode *inode, struct posix_acl *acl,
                      int type, bool init_acl)
  

Patch

diff --git a/fs/ntfs3/file.c b/fs/ntfs3/file.c
index df7b76d1c127..09b7931e6be3 100644
--- a/fs/ntfs3/file.c
+++ b/fs/ntfs3/file.c
@@ -1143,7 +1143,7 @@  const struct inode_operations 
ntfs_file_inode_operations = {
      .getattr    = ntfs_getattr,
      .setattr    = ntfs3_setattr,
      .listxattr    = ntfs_listxattr,
-    .get_inode_acl    = ntfs_get_acl,
+    .get_acl    = ntfs_get_acl,
      .set_acl    = ntfs_set_acl,
      .fiemap        = ntfs_fiemap,
  };
diff --git a/fs/ntfs3/namei.c b/fs/ntfs3/namei.c
index 5d5fe2f1f77c..8b68ead5cc1f 100644
--- a/fs/ntfs3/namei.c
+++ b/fs/ntfs3/namei.c
@@ -607,7 +607,7 @@  const struct inode_operations 
ntfs_dir_inode_operations = {
      .rmdir        = ntfs_rmdir,
      .mknod        = ntfs_mknod,
      .rename        = ntfs_rename,
-    .get_inode_acl    = ntfs_get_acl,
+    .get_acl    = ntfs_get_acl,
      .set_acl    = ntfs_set_acl,
      .setattr    = ntfs3_setattr,
      .getattr    = ntfs_getattr,
@@ -620,7 +620,7 @@  const struct inode_operations 
ntfs_special_inode_operations = {
      .setattr    = ntfs3_setattr,
      .getattr    = ntfs_getattr,
      .listxattr    = ntfs_listxattr,
-    .get_inode_acl    = ntfs_get_acl,
+    .get_acl    = ntfs_get_acl,
      .set_acl    = ntfs_set_acl,
  };

diff --git a/fs/ntfs3/ntfs_fs.h b/fs/ntfs3/ntfs_fs.h
index 26957dbfe471..b7782107ce8a 100644
--- a/fs/ntfs3/ntfs_fs.h
+++ b/fs/ntfs3/ntfs_fs.h
@@ -855,7 +855,8 @@  unsigned long ntfs_names_hash(const u16 *name, 
size_t len, const u16 *upcase,

  /* globals from xattr.c */
  #ifdef CONFIG_NTFS3_FS_POSIX_ACL
-struct posix_acl *ntfs_get_acl(struct inode *inode, int type, bool rcu);
+struct posix_acl *ntfs_get_acl(struct user_namespace *mnt_userns,
+         struct dentry *dentry, int type);
  int ntfs_set_acl(struct user_namespace *mnt_userns, struct dentry *dentry,
           struct posix_acl *acl, int type);
  int ntfs_init_acl(struct user_namespace *mnt_userns, struct inode *inode,
diff --git a/fs/ntfs3/xattr.c b/fs/ntfs3/xattr.c
index e7a66225361d..95c479d7ebba 100644
--- a/fs/ntfs3/xattr.c
+++ b/fs/ntfs3/xattr.c
@@ -520,9 +520,14 @@  static noinline int ntfs_set_ea(struct inode 
*inode, const char *name,
  }

  #ifdef CONFIG_NTFS3_FS_POSIX_ACL
-static struct posix_acl *ntfs_get_acl_ex(struct inode *inode, int type,
-                     int locked)
+
+/*
+ * ntfs_get_acl - inode_operations::get_acl
+ */
+struct posix_acl *ntfs_get_acl(struct user_namespace *mnt_userns,
+                   struct dentry *dentry, int type)
  {
+    struct inode *inode = d_inode(dentry);
      struct ntfs_inode *ni = ntfs_i(inode);
      const char *name;