Details
-
Bug
-
Resolution: Fixed
-
Minor
-
None
-
3
-
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); }