Whamcloud - gitweb
LU-12885 llite: mark extended attr and inode flags 19/36519/6
authorAndreas Dilger <adilger@whamcloud.com>
Fri, 18 Oct 2019 10:43:11 +0000 (19:43 +0900)
committerOleg Drokin <green@whamcloud.com>
Sat, 6 Mar 2021 02:35:03 +0000 (02:35 +0000)
Clearly name the extended attribute and inode flags so that it is
possible to distinguish them more easily.

Test-Parameters: trivial
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Change-Id: Id1ad2ba6411f69efb2de38e1019940f5fb3ebbe5
Reviewed-on: https://review.whamcloud.com/36519
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Reviewed-by: Neil Brown <neilb@suse.de>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/include/obd_support.h
lustre/include/uapi/linux/lustre/lustre_idl.h
lustre/llite/file.c
lustre/llite/llite_internal.h
lustre/llite/llite_lib.c

index 085a71f..b212042 100644 (file)
@@ -990,28 +990,28 @@ static inline int lustre_to_lma_flags(__u32 la_flags)
  * versions. These flags are set/cleared via FSFILT_IOC_{GET,SET}_FLAGS.
  * See b=16526 for a full history.
  */
  * versions. These flags are set/cleared via FSFILT_IOC_{GET,SET}_FLAGS.
  * See b=16526 for a full history.
  */
-static inline int ll_ext_to_inode_flags(int flags)
+static inline int ll_ext_to_inode_flags(int ext_flags)
 {
 {
-       return (((flags & LUSTRE_SYNC_FL)      ? S_SYNC      : 0) |
-               ((flags & LUSTRE_NOATIME_FL)   ? S_NOATIME   : 0) |
-               ((flags & LUSTRE_APPEND_FL)    ? S_APPEND    : 0) |
-               ((flags & LUSTRE_DIRSYNC_FL)   ? S_DIRSYNC   : 0) |
+       return (((ext_flags & LUSTRE_SYNC_FL)      ? S_SYNC      : 0) |
+               ((ext_flags & LUSTRE_NOATIME_FL)   ? S_NOATIME   : 0) |
+               ((ext_flags & LUSTRE_APPEND_FL)    ? S_APPEND    : 0) |
+               ((ext_flags & LUSTRE_DIRSYNC_FL)   ? S_DIRSYNC   : 0) |
 #if defined(S_ENCRYPTED)
 #if defined(S_ENCRYPTED)
-               ((flags & LUSTRE_ENCRYPT_FL)   ? S_ENCRYPTED : 0) |
+               ((ext_flags & LUSTRE_ENCRYPT_FL)   ? S_ENCRYPTED : 0) |
 #endif
 #endif
-               ((flags & LUSTRE_IMMUTABLE_FL) ? S_IMMUTABLE : 0));
+               ((ext_flags & LUSTRE_IMMUTABLE_FL) ? S_IMMUTABLE : 0));
 }
 
 }
 
-static inline int ll_inode_to_ext_flags(int iflags)
+static inline int ll_inode_to_ext_flags(int inode_flags)
 {
 {
-       return (((iflags & S_SYNC)      ? LUSTRE_SYNC_FL      : 0) |
-               ((iflags & S_NOATIME)   ? LUSTRE_NOATIME_FL   : 0) |
-               ((iflags & S_APPEND)    ? LUSTRE_APPEND_FL    : 0) |
-               ((iflags & S_DIRSYNC)   ? LUSTRE_DIRSYNC_FL   : 0) |
+       return (((inode_flags & S_SYNC)      ? LUSTRE_SYNC_FL      : 0) |
+               ((inode_flags & S_NOATIME)   ? LUSTRE_NOATIME_FL   : 0) |
+               ((inode_flags & S_APPEND)    ? LUSTRE_APPEND_FL    : 0) |
+               ((inode_flags & S_DIRSYNC)   ? LUSTRE_DIRSYNC_FL   : 0) |
 #if defined(S_ENCRYPTED)
 #if defined(S_ENCRYPTED)
-               ((iflags & S_ENCRYPTED) ? LUSTRE_ENCRYPT_FL   : 0) |
+               ((inode_flags & S_ENCRYPTED) ? LUSTRE_ENCRYPT_FL   : 0) |
 #endif
 #endif
-               ((iflags & S_IMMUTABLE) ? LUSTRE_IMMUTABLE_FL : 0));
+               ((inode_flags & S_IMMUTABLE) ? LUSTRE_IMMUTABLE_FL : 0));
 }
 
 struct obd_heat_instance {
 }
 
 struct obd_heat_instance {
index 1fc0e64..b05a4c3 100644 (file)
@@ -1834,7 +1834,9 @@ struct mdt_body {
        __u32   mbo_mode;
        __u32   mbo_uid;
        __u32   mbo_gid;
        __u32   mbo_mode;
        __u32   mbo_uid;
        __u32   mbo_gid;
-       __u32   mbo_flags;   /* LUSTRE_*_FL file attributes */
+       __u32   mbo_flags; /* most replies: LUSTRE_*_FL file attributes,
+                           * data_version: OBD_FL_* flags
+                           */
        __u32   mbo_rdev;
        __u32   mbo_nlink; /* #bytes to read in the case of MDS_READPAGE */
        __u32   mbo_layout_gen; /* was "generation" until 2.4.0 */
        __u32   mbo_rdev;
        __u32   mbo_nlink; /* #bytes to read in the case of MDS_READPAGE */
        __u32   mbo_layout_gen; /* was "generation" until 2.4.0 */
index f307298..1e01323 100644 (file)
@@ -3266,14 +3266,12 @@ int ll_ioctl_check_project(struct inode *inode, struct fsxattr *fa)
 int ll_ioctl_fssetxattr(struct inode *inode, unsigned int cmd,
                        unsigned long arg)
 {
 int ll_ioctl_fssetxattr(struct inode *inode, unsigned int cmd,
                        unsigned long arg)
 {
-
        struct md_op_data *op_data;
        struct ptlrpc_request *req = NULL;
        struct md_op_data *op_data;
        struct ptlrpc_request *req = NULL;
-       int rc = 0;
        struct fsxattr fsxattr;
        struct cl_object *obj;
        struct fsxattr fsxattr;
        struct cl_object *obj;
-       struct iattr *attr;
-       int flags;
+       unsigned int inode_flags;
+       int rc = 0;
 
        if (copy_from_user(&fsxattr,
                           (const struct fsxattr __user *)arg,
 
        if (copy_from_user(&fsxattr,
                           (const struct fsxattr __user *)arg,
@@ -3289,34 +3287,31 @@ int ll_ioctl_fssetxattr(struct inode *inode, unsigned int cmd,
        if (IS_ERR(op_data))
                RETURN(PTR_ERR(op_data));
 
        if (IS_ERR(op_data))
                RETURN(PTR_ERR(op_data));
 
-       flags = ll_xflags_to_inode_flags(fsxattr.fsx_xflags);
-       op_data->op_attr_flags = ll_inode_to_ext_flags(flags);
+       inode_flags = ll_xflags_to_inode_flags(fsxattr.fsx_xflags);
+       op_data->op_attr_flags = ll_inode_to_ext_flags(inode_flags);
        if (fsxattr.fsx_xflags & FS_XFLAG_PROJINHERIT)
                op_data->op_attr_flags |= LUSTRE_PROJINHERIT_FL;
        op_data->op_projid = fsxattr.fsx_projid;
        op_data->op_xvalid |= OP_XVALID_PROJID | OP_XVALID_FLAGS;
        if (fsxattr.fsx_xflags & FS_XFLAG_PROJINHERIT)
                op_data->op_attr_flags |= LUSTRE_PROJINHERIT_FL;
        op_data->op_projid = fsxattr.fsx_projid;
        op_data->op_xvalid |= OP_XVALID_PROJID | OP_XVALID_FLAGS;
-       rc = md_setattr(ll_i2sbi(inode)->ll_md_exp, op_data, NULL,
-                       0, &req);
+       rc = md_setattr(ll_i2sbi(inode)->ll_md_exp, op_data, NULL, 0, &req);
        ptlrpc_req_finished(req);
        if (rc)
                GOTO(out_fsxattr, rc);
        ll_update_inode_flags(inode, op_data->op_attr_flags);
        ptlrpc_req_finished(req);
        if (rc)
                GOTO(out_fsxattr, rc);
        ll_update_inode_flags(inode, op_data->op_attr_flags);
-       obj = ll_i2info(inode)->lli_clob;
-       if (obj == NULL)
-               GOTO(out_fsxattr, rc);
 
 
-       /* Avoiding OST RPC if this is only project ioctl */
+       /* Avoid OST RPC if this is only ioctl setting project inherit flag */
        if (fsxattr.fsx_xflags == 0 ||
            fsxattr.fsx_xflags == FS_XFLAG_PROJINHERIT)
                GOTO(out_fsxattr, rc);
 
        if (fsxattr.fsx_xflags == 0 ||
            fsxattr.fsx_xflags == FS_XFLAG_PROJINHERIT)
                GOTO(out_fsxattr, rc);
 
-       OBD_ALLOC_PTR(attr);
-       if (attr == NULL)
-               GOTO(out_fsxattr, rc = -ENOMEM);
+       obj = ll_i2info(inode)->lli_clob;
+       if (obj) {
+               struct iattr attr = { 0 };
+
+               rc = cl_setattr_ost(obj, &attr, OP_XVALID_FLAGS,
+                                   fsxattr.fsx_xflags);
+       }
 
 
-       rc = cl_setattr_ost(obj, attr, OP_XVALID_FLAGS,
-                           fsxattr.fsx_xflags);
-       OBD_FREE_PTR(attr);
 out_fsxattr:
        ll_finish_md_op_data(op_data);
        RETURN(rc);
 out_fsxattr:
        ll_finish_md_op_data(op_data);
        RETURN(rc);
index c64b95f..69c6f79 100644 (file)
@@ -1136,12 +1136,12 @@ static inline int ll_xflags_to_inode_flags(int xflags)
               ((xflags & FS_XFLAG_IMMUTABLE) ? S_IMMUTABLE : 0);
 }
 
               ((xflags & FS_XFLAG_IMMUTABLE) ? S_IMMUTABLE : 0);
 }
 
-static inline int ll_inode_flags_to_xflags(int flags)
+static inline int ll_inode_flags_to_xflags(int inode_flags)
 {
 {
-       return ((flags & S_SYNC)      ? FS_XFLAG_SYNC      : 0) |
-              ((flags & S_NOATIME)   ? FS_XFLAG_NOATIME   : 0) |
-              ((flags & S_APPEND)    ? FS_XFLAG_APPEND    : 0) |
-              ((flags & S_IMMUTABLE) ? FS_XFLAG_IMMUTABLE : 0);
+       return ((inode_flags & S_SYNC)      ? FS_XFLAG_SYNC      : 0) |
+              ((inode_flags & S_NOATIME)   ? FS_XFLAG_NOATIME   : 0) |
+              ((inode_flags & S_APPEND)    ? FS_XFLAG_APPEND    : 0) |
+              ((inode_flags & S_IMMUTABLE) ? FS_XFLAG_IMMUTABLE : 0);
 }
 
 int ll_migrate(struct inode *parent, struct file *file,
 }
 
 int ll_migrate(struct inode *parent, struct file *file,
@@ -1204,7 +1204,7 @@ int ll_statfs(struct dentry *de, struct kstatfs *sfs);
 int ll_statfs_internal(struct ll_sb_info *sbi, struct obd_statfs *osfs,
                       u32 flags);
 int ll_update_inode(struct inode *inode, struct lustre_md *md);
 int ll_statfs_internal(struct ll_sb_info *sbi, struct obd_statfs *osfs,
                       u32 flags);
 int ll_update_inode(struct inode *inode, struct lustre_md *md);
-void ll_update_inode_flags(struct inode *inode, int ext_flags);
+void ll_update_inode_flags(struct inode *inode, unsigned int ext_flags);
 int ll_read_inode2(struct inode *inode, void *opaque);
 void ll_delete_inode(struct inode *inode);
 int ll_iocontrol(struct inode *inode, struct file *file,
 int ll_read_inode2(struct inode *inode, void *opaque);
 void ll_delete_inode(struct inode *inode);
 int ll_iocontrol(struct inode *inode, struct file *file,
index 3a778a6..5bdef51 100644 (file)
@@ -2418,7 +2418,7 @@ void ll_inode_size_unlock(struct inode *inode)
        mutex_unlock(&lli->lli_size_mutex);
 }
 
        mutex_unlock(&lli->lli_size_mutex);
 }
 
-void ll_update_inode_flags(struct inode *inode, int ext_flags)
+void ll_update_inode_flags(struct inode *inode, unsigned int ext_flags)
 {
        /* do not clear encryption flag */
        ext_flags |= ll_inode_to_ext_flags(inode->i_flags) & LUSTRE_ENCRYPT_FL;
 {
        /* do not clear encryption flag */
        ext_flags |= ll_inode_to_ext_flags(inode->i_flags) & LUSTRE_ENCRYPT_FL;