[LU-11165] ll_ioctl_fssetxattr() may discard errors from md_setattr() and forget to set i_flags Created: 23/Jul/18  Updated: 16/Sep/18  Resolved: 16/Sep/18

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: None
Fix Version/s: Lustre 2.12.0

Type: Bug Priority: Minor
Reporter: John Hammond Assignee: Wang Shilong (Inactive)
Resolution: Fixed Votes: 0
Labels: llite

Severity: 3
Rank (Obsolete): 9223372036854775807

 Description   

In ll_ioctl_fssetxattr() we may discard errors from md_setattr(). And we only set the local i_flags when lli_clob is not NULL:

        rc = md_setattr(ll_i2sbi(inode)->ll_md_exp, op_data, NULL,
			0, &req);
        ptlrpc_req_finished(req);

        obj = ll_i2info(inode)->lli_clob;
        if (obj) {
                struct iattr *attr;

                inode->i_flags = ll_ext_to_inode_flags(fsxattr.fsx_xflags);
                OBD_ALLOC_PTR(attr);
                if (attr == NULL)
			GOTO(out_fsxattr1, rc = -ENOMEM);
                attr->ia_valid = ATTR_ATTR_FLAG;
                rc = cl_setattr_ost(obj, attr, fsxattr.fsx_xflags);

                OBD_FREE_PTR(attr);
        }
out_fsxattr1:
        ll_finish_md_op_data(op_data);
        RETURN(rc);
}


 Comments   
Comment by Gerrit Updater [ 23/Jul/18 ]

Wang Shilong (wshilong@ddn.com) uploaded a new patch: https://review.whamcloud.com/32860
Subject: LU-11165 llite: set iflags and catch error from md_setattr() properly
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: 34a9f01386386c756fbb51ab491e5f0bb0c77664

Comment by Gerrit Updater [ 16/Sep/18 ]

Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/32860/
Subject: LU-11165 llite: set iflags and catch error from md_setattr() properly
Project: fs/lustre-release
Branch: master
Current Patch Set:
Commit: ecc46547d1277520d12c388112faad9b45732d6c

Comment by Peter Jones [ 16/Sep/18 ]

Landed for 2.12

Generated at Sat Feb 10 02:41:30 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.