Commit e6eb603c authored by Darrick J. Wong's avatar Darrick J. Wong
Browse files

xfs: refactor quota type testing



Certain functions can only act upon one quota type, so refactor those
functions to use switch statements, in keeping with all the other high
level xfs quota api calls.

Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
parent 00a342e4
Loading
Loading
Loading
Loading
+18 −11
Original line number Diff line number Diff line
@@ -171,6 +171,24 @@ xfs_qm_init_dquot_blk(
	ASSERT(tp);
	ASSERT(xfs_buf_islocked(bp));

	switch (type) {
	case XFS_DQTYPE_USER:
		qflag = XFS_UQUOTA_CHKD;
		blftype = XFS_BLF_UDQUOT_BUF;
		break;
	case XFS_DQTYPE_PROJ:
		qflag = XFS_PQUOTA_CHKD;
		blftype = XFS_BLF_PDQUOT_BUF;
		break;
	case XFS_DQTYPE_GROUP:
		qflag = XFS_GQUOTA_CHKD;
		blftype = XFS_BLF_GDQUOT_BUF;
		break;
	default:
		ASSERT(0);
		return;
	}

	d = bp->b_addr;

	/*
@@ -190,17 +208,6 @@ xfs_qm_init_dquot_blk(
		}
	}

	if (type & XFS_DQTYPE_USER) {
		qflag = XFS_UQUOTA_CHKD;
		blftype = XFS_BLF_UDQUOT_BUF;
	} else if (type & XFS_DQTYPE_PROJ) {
		qflag = XFS_PQUOTA_CHKD;
		blftype = XFS_BLF_PDQUOT_BUF;
	} else {
		qflag = XFS_GQUOTA_CHKD;
		blftype = XFS_BLF_GDQUOT_BUF;
	}

	xfs_trans_dquot_buf(tp, bp, blftype);

	/*
+11 −4
Original line number Diff line number Diff line
@@ -558,12 +558,19 @@ xfs_quota_warn(
{
	enum quota_type		qtype;

	if (dqp->dq_flags & XFS_DQTYPE_PROJ)
	switch (xfs_dquot_type(dqp)) {
	case XFS_DQTYPE_PROJ:
		qtype = PRJQUOTA;
	else if (dqp->dq_flags & XFS_DQTYPE_USER)
		break;
	case XFS_DQTYPE_USER:
		qtype = USRQUOTA;
	else
		break;
	case XFS_DQTYPE_GROUP:
		qtype = GRPQUOTA;
		break;
	default:
		return;
	}

	quota_send_warning(make_kqid(&init_user_ns, qtype, dqp->q_id),
			   mp->m_super->s_dev, type);