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 08/11] fs/ntfs3: Changed ntfs_get_acl() to use dentry
    From
    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(-)

    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;
         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)
    --
    2.34.1
    \
     
     \ /
      Last update: 2023-03-27 00:24    [W:4.307 / U:0.104 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site