From: Wang Shilong <wshilong@xxxxxxx> From: Wang Shilong <wshilong@xxxxxxx> Signed-off-by: Wang Shilong <wshilong@xxxxxxx> --- fs/f2fs/file.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c index bba56b39dcc5..8eaca056e857 100644 --- a/fs/f2fs/file.c +++ b/fs/f2fs/file.c @@ -789,7 +789,9 @@ int f2fs_setattr(struct dentry *dentry, struct iattr *attr) if ((attr->ia_valid & ATTR_UID && !uid_eq(attr->ia_uid, inode->i_uid)) || (attr->ia_valid & ATTR_GID && - !gid_eq(attr->ia_gid, inode->i_gid))) { + !gid_eq(attr->ia_gid, inode->i_gid)) || + (attr->ia_valid & ATTR_PROJID && + !projid_eq(attr->ia_projid, F2FS_I(inode)->i_projid))) { f2fs_lock_op(F2FS_I_SB(inode)); err = dquot_transfer(inode, attr); if (err) { @@ -806,6 +808,8 @@ int f2fs_setattr(struct dentry *dentry, struct iattr *attr) inode->i_uid = attr->ia_uid; if (attr->ia_valid & ATTR_GID) inode->i_gid = attr->ia_gid; + if (attr->ia_valid & ATTR_PROJID) + F2FS_I(inode)->i_projid = attr->ia_projid; f2fs_mark_inode_dirty_sync(inode, true); f2fs_unlock_op(F2FS_I_SB(inode)); } -- 2.19.1