On Wed 24-09-14 22:04:27, Li Xi wrote:
quoted hunk
@@ -1413,6 +1416,15 @@ static void __dquot_initialize(struct inode *inode, int type)
case GRPQUOTA:
qid = make_kqid_gid(inode->i_gid);
break;
+ case PRJQUOTA:
+ /* Project ID is not supported */
+ if (!inode->i_sb->dq_op->get_projid)
+ continue;
+ rc = inode->i_sb->dq_op->get_projid(inode, &projid);
+ if (rc)
+ continue;
+ qid = make_kqid_projid(projid);
+ break;
I realized one more thing: We don't want to check ->get_projid() here.
Rather we should check ->get_projid() when turning quota on in
quota_quotaon() and return -EINVAL when ->get_projid() isn't set - that way
user is early notified the fs doesn't support project quotas. Then here
in __dquot_initialize() we can just check sb_has_quota_active(sb, PRJQUOTA).
Honza
--
Jan Kara [off-list ref]
SUSE Labs, CR