fs/ntfs3: Changed ntfs_get_acl() to use dentry
authorKonstantin Komarov <almaz.alexandrovich@paragon-software.com>
Tue, 14 Feb 2023 11:06:27 +0000 (15:06 +0400)
committerKonstantin Komarov <almaz.alexandrovich@paragon-software.com>
Mon, 27 Mar 2023 13:44:35 +0000 (17:44 +0400)
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
fs/ntfs3/namei.c
fs/ntfs3/ntfs_fs.h
fs/ntfs3/xattr.c

index 1e8d6a3c9fec4fa32c11ecaa73efa3c825951c93..56185bd1a03e9336f324afe53296f373f0d1a384 100644 (file)
@@ -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,
 };
index fdd11f2a1883cf01bdf8d56eb55a1a1dece42e8f..447a241fe02c9bbe083e1f7e8fc99f947f2af10b 100644 (file)
@@ -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,
 };
 
index 7845c627a76185181e70c69751cb189a2941d6a7..15df110f561ff61261890d01705a5780283b9694 100644 (file)
@@ -857,11 +857,12 @@ 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 mnt_idmap *idmap,
+                struct dentry *dentry, int type);
 int ntfs_set_acl(struct mnt_idmap *idmap, struct dentry *dentry,
                 struct posix_acl *acl, int type);
 int ntfs_init_acl(struct mnt_idmap *idmap, struct inode *inode,
-                 struct inode *dir);
+                struct inode *dir);
 #else
 #define ntfs_get_acl NULL
 #define ntfs_set_acl NULL
index 9fbeaa7bbc001ae3f837381be03ab2a15581c93c..d2746803f03271464e1b970e6b2d5020fe6ffbf5 100644 (file)
@@ -520,9 +520,14 @@ out:
 }
 
 #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 mnt_idmap *idmap,
+                              struct dentry *dentry, int type)
 {
+       struct inode *inode = d_inode(dentry);
        struct ntfs_inode *ni = ntfs_i(inode);
        const char *name;
        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 mnt_idmap *idmap,
                                    struct inode *inode, struct posix_acl *acl,
                                    int type, bool init_acl)