attr->cat_blocks = inode->i_blocks;
attr->cat_uid = from_kuid(&init_user_ns, inode->i_uid);
attr->cat_gid = from_kgid(&init_user_ns, inode->i_gid);
+ attr->cat_projid = ll_i2info(inode)->lli_projid;
/* KMS is not known by this layer */
return 0; /* layers below have to fill in the rest */
}
inode->i_ctime.tv_sec = attr->cat_ctime;
if (0 && valid & CAT_SIZE)
i_size_write(inode, attr->cat_size);
+ if (valid & CAT_PROJID)
+ ll_i2info(inode)->lli_projid = attr->cat_projid;
/* not currently necessary */
- if (0 && valid & (CAT_UID|CAT_GID|CAT_SIZE))
+ if (0 && valid & (CAT_UID|CAT_GID|CAT_SIZE|CAT_PROJID))
mark_inode_dirty(inode);
return 0;
}
oa = attr->cra_oa;
inode = vvp_object_inode(obj);
- if (attr->cra_type == CRT_WRITE)
+ if (attr->cra_type == CRT_WRITE) {
valid_flags |= OBD_MD_FLMTIME | OBD_MD_FLCTIME |
OBD_MD_FLUID | OBD_MD_FLGID;
+ obdo_set_o_projid(oa, ll_i2info(inode)->lli_projid);
+ }
obdo_from_inode(oa, inode, valid_flags & attr->cra_flags);
obdo_set_parent_fid(oa, &ll_i2info(inode)->lli_fid);
if (OBD_FAIL_CHECK(OBD_FAIL_LFSCK_INVALID_PFID))