From: Carlos Maiolino <cmaiolino@redhat.com>
To: Christoph Hellwig <hch@lst.de>
Cc: linux-xfs@vger.kernel.org
Subject: Re: [PATCH 3/3] xfs: remove the active vs running quota differentiation
Date: Wed, 14 Jul 2021 13:47:07 +0200 [thread overview]
Message-ID: <20210714114707.ppv7wt3vv6mqec36@omega.lan> (raw)
In-Reply-To: <20210712111426.83004-4-hch@lst.de>
On Mon, Jul 12, 2021 at 01:14:26PM +0200, Christoph Hellwig wrote:
> These only made a difference when quotaoff supported disabling quota
> accounting on a mounted file system, so we can switch everyone to use
> a single set of flags and helpers now. Note that the *QUOTA_ON naming
> for the helpers is kept as it was the much more commonly used one.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> fs/xfs/libxfs/xfs_quota_defs.h | 30 +++-----------------
> fs/xfs/scrub/quota.c | 2 +-
> fs/xfs/xfs_dquot.c | 3 --
> fs/xfs/xfs_ioctl.c | 2 +-
> fs/xfs/xfs_iops.c | 4 +--
> fs/xfs/xfs_mount.c | 4 +--
> fs/xfs/xfs_qm.c | 26 ++++++++---------
> fs/xfs/xfs_qm_syscalls.c | 2 +-
> fs/xfs/xfs_quotaops.c | 30 +++++++-------------
> fs/xfs/xfs_super.c | 51 ++++++++++++++--------------------
> fs/xfs/xfs_trans_dquot.c | 11 ++++----
> 11 files changed, 58 insertions(+), 107 deletions(-)
Looks good
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
>
> diff --git a/fs/xfs/libxfs/xfs_quota_defs.h b/fs/xfs/libxfs/xfs_quota_defs.h
> index 0f0af4e3503293..a02c5062f9b292 100644
> --- a/fs/xfs/libxfs/xfs_quota_defs.h
> +++ b/fs/xfs/libxfs/xfs_quota_defs.h
> @@ -60,36 +60,14 @@ typedef uint8_t xfs_dqtype_t;
> #define XFS_DQUOT_LOGRES(mp) \
> ((sizeof(struct xfs_dq_logformat) + sizeof(struct xfs_disk_dquot)) * 6)
>
> -#define XFS_IS_QUOTA_RUNNING(mp) ((mp)->m_qflags & XFS_ALL_QUOTA_ACCT)
> -#define XFS_IS_UQUOTA_RUNNING(mp) ((mp)->m_qflags & XFS_UQUOTA_ACCT)
> -#define XFS_IS_PQUOTA_RUNNING(mp) ((mp)->m_qflags & XFS_PQUOTA_ACCT)
> -#define XFS_IS_GQUOTA_RUNNING(mp) ((mp)->m_qflags & XFS_GQUOTA_ACCT)
> +#define XFS_IS_QUOTA_ON(mp) ((mp)->m_qflags & XFS_ALL_QUOTA_ACCT)
> +#define XFS_IS_UQUOTA_ON(mp) ((mp)->m_qflags & XFS_UQUOTA_ACCT)
> +#define XFS_IS_PQUOTA_ON(mp) ((mp)->m_qflags & XFS_PQUOTA_ACCT)
> +#define XFS_IS_GQUOTA_ON(mp) ((mp)->m_qflags & XFS_GQUOTA_ACCT)
> #define XFS_IS_UQUOTA_ENFORCED(mp) ((mp)->m_qflags & XFS_UQUOTA_ENFD)
> #define XFS_IS_GQUOTA_ENFORCED(mp) ((mp)->m_qflags & XFS_GQUOTA_ENFD)
> #define XFS_IS_PQUOTA_ENFORCED(mp) ((mp)->m_qflags & XFS_PQUOTA_ENFD)
>
> -/*
> - * Incore only flags for quotaoff - these bits get cleared when quota(s)
> - * are in the process of getting turned off. These flags are in m_qflags but
> - * never in sb_qflags.
> - */
> -#define XFS_UQUOTA_ACTIVE 0x1000 /* uquotas are being turned off */
> -#define XFS_GQUOTA_ACTIVE 0x2000 /* gquotas are being turned off */
> -#define XFS_PQUOTA_ACTIVE 0x4000 /* pquotas are being turned off */
> -#define XFS_ALL_QUOTA_ACTIVE \
> - (XFS_UQUOTA_ACTIVE | XFS_GQUOTA_ACTIVE | XFS_PQUOTA_ACTIVE)
> -
> -/*
> - * Checking XFS_IS_*QUOTA_ON() while holding any inode lock guarantees
> - * quota will be not be switched off as long as that inode lock is held.
> - */
> -#define XFS_IS_QUOTA_ON(mp) ((mp)->m_qflags & (XFS_UQUOTA_ACTIVE | \
> - XFS_GQUOTA_ACTIVE | \
> - XFS_PQUOTA_ACTIVE))
> -#define XFS_IS_UQUOTA_ON(mp) ((mp)->m_qflags & XFS_UQUOTA_ACTIVE)
> -#define XFS_IS_GQUOTA_ON(mp) ((mp)->m_qflags & XFS_GQUOTA_ACTIVE)
> -#define XFS_IS_PQUOTA_ON(mp) ((mp)->m_qflags & XFS_PQUOTA_ACTIVE)
> -
> /*
> * Flags to tell various functions what to do. Not all of these are meaningful
> * to a single function. None of these XFS_QMOPT_* flags are meant to have
> diff --git a/fs/xfs/scrub/quota.c b/fs/xfs/scrub/quota.c
> index acbb9839d42fbd..3cccd6d5b57755 100644
> --- a/fs/xfs/scrub/quota.c
> +++ b/fs/xfs/scrub/quota.c
> @@ -42,7 +42,7 @@ xchk_setup_quota(
> xfs_dqtype_t dqtype;
> int error;
>
> - if (!XFS_IS_QUOTA_RUNNING(sc->mp) || !XFS_IS_QUOTA_ON(sc->mp))
> + if (!XFS_IS_QUOTA_ON(sc->mp))
> return -ENOENT;
>
> dqtype = xchk_quota_to_dqtype(sc);
> diff --git a/fs/xfs/xfs_dquot.c b/fs/xfs/xfs_dquot.c
> index ecd5059d6928f7..c301b18b7685b1 100644
> --- a/fs/xfs/xfs_dquot.c
> +++ b/fs/xfs/xfs_dquot.c
> @@ -847,9 +847,6 @@ xfs_qm_dqget_checks(
> struct xfs_mount *mp,
> xfs_dqtype_t type)
> {
> - if (WARN_ON_ONCE(!XFS_IS_QUOTA_RUNNING(mp)))
> - return -ESRCH;
> -
> switch (type) {
> case XFS_DQTYPE_USER:
> if (!XFS_IS_UQUOTA_ON(mp))
> diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c
> index 65270e63c032a0..9f4aa1477e2fca 100644
> --- a/fs/xfs/xfs_ioctl.c
> +++ b/fs/xfs/xfs_ioctl.c
> @@ -1433,7 +1433,7 @@ xfs_fileattr_set(
>
> /* Change the ownerships and register project quota modifications */
> if (ip->i_projid != fa->fsx_projid) {
> - if (XFS_IS_QUOTA_RUNNING(mp) && XFS_IS_PQUOTA_ON(mp)) {
> + if (XFS_IS_PQUOTA_ON(mp)) {
> olddquot = xfs_qm_vop_chown(tp, ip,
> &ip->i_pdquot, pdqp);
> }
> diff --git a/fs/xfs/xfs_iops.c b/fs/xfs/xfs_iops.c
> index 93c082db04b78c..327d65ef1e268c 100644
> --- a/fs/xfs/xfs_iops.c
> +++ b/fs/xfs/xfs_iops.c
> @@ -778,7 +778,7 @@ xfs_setattr_nonsize(
> * in the transaction.
> */
> if (!uid_eq(iuid, uid)) {
> - if (XFS_IS_QUOTA_RUNNING(mp) && XFS_IS_UQUOTA_ON(mp)) {
> + if (XFS_IS_UQUOTA_ON(mp)) {
> ASSERT(mask & ATTR_UID);
> ASSERT(udqp);
> olddquot1 = xfs_qm_vop_chown(tp, ip,
> @@ -787,7 +787,7 @@ xfs_setattr_nonsize(
> inode->i_uid = uid;
> }
> if (!gid_eq(igid, gid)) {
> - if (XFS_IS_QUOTA_RUNNING(mp) && XFS_IS_GQUOTA_ON(mp)) {
> + if (XFS_IS_GQUOTA_ON(mp)) {
> ASSERT(xfs_sb_version_has_pquotino(&mp->m_sb) ||
> !XFS_IS_PQUOTA_ON(mp));
> ASSERT(mask & ATTR_GID);
> diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c
> index d0755494597f99..baf7b323cb15eb 100644
> --- a/fs/xfs/xfs_mount.c
> +++ b/fs/xfs/xfs_mount.c
> @@ -836,13 +836,11 @@ xfs_mountfs(
> /*
> * Initialise the XFS quota management subsystem for this mount
> */
> - if (XFS_IS_QUOTA_RUNNING(mp)) {
> + if (XFS_IS_QUOTA_ON(mp)) {
> error = xfs_qm_newmount(mp, "amount, "aflags);
> if (error)
> goto out_rtunmount;
> } else {
> - ASSERT(!XFS_IS_QUOTA_ON(mp));
> -
> /*
> * If a file system had quotas running earlier, but decided to
> * mount without -o uquota/pquota/gquota options, revoke the
> diff --git a/fs/xfs/xfs_qm.c b/fs/xfs/xfs_qm.c
> index 2b34273d0405e7..351d99bc52e5f8 100644
> --- a/fs/xfs/xfs_qm.c
> +++ b/fs/xfs/xfs_qm.c
> @@ -295,8 +295,6 @@ xfs_qm_need_dqattach(
> {
> struct xfs_mount *mp = ip->i_mount;
>
> - if (!XFS_IS_QUOTA_RUNNING(mp))
> - return false;
> if (!XFS_IS_QUOTA_ON(mp))
> return false;
> if (!XFS_NOT_DQATTACHED(mp, ip))
> @@ -631,7 +629,7 @@ xfs_qm_init_quotainfo(
> struct xfs_quotainfo *qinf;
> int error;
>
> - ASSERT(XFS_IS_QUOTA_RUNNING(mp));
> + ASSERT(XFS_IS_QUOTA_ON(mp));
>
> qinf = mp->m_quotainfo = kmem_zalloc(sizeof(struct xfs_quotainfo), 0);
>
> @@ -676,11 +674,11 @@ xfs_qm_init_quotainfo(
> xfs_qm_init_timelimits(mp, XFS_DQTYPE_GROUP);
> xfs_qm_init_timelimits(mp, XFS_DQTYPE_PROJ);
>
> - if (XFS_IS_UQUOTA_RUNNING(mp))
> + if (XFS_IS_UQUOTA_ON(mp))
> xfs_qm_set_defquota(mp, XFS_DQTYPE_USER, qinf);
> - if (XFS_IS_GQUOTA_RUNNING(mp))
> + if (XFS_IS_GQUOTA_ON(mp))
> xfs_qm_set_defquota(mp, XFS_DQTYPE_GROUP, qinf);
> - if (XFS_IS_PQUOTA_RUNNING(mp))
> + if (XFS_IS_PQUOTA_ON(mp))
> xfs_qm_set_defquota(mp, XFS_DQTYPE_PROJ, qinf);
>
> qinf->qi_shrinker.count_objects = xfs_qm_shrink_count;
> @@ -1143,7 +1141,7 @@ xfs_qm_dqusage_adjust(
> xfs_filblks_t rtblks = 0; /* total rt blks */
> int error;
>
> - ASSERT(XFS_IS_QUOTA_RUNNING(mp));
> + ASSERT(XFS_IS_QUOTA_ON(mp));
>
> /*
> * rootino must have its resources accounted for, not so with the quota
> @@ -1284,7 +1282,7 @@ xfs_qm_quotacheck(
> flags = 0;
>
> ASSERT(uip || gip || pip);
> - ASSERT(XFS_IS_QUOTA_RUNNING(mp));
> + ASSERT(XFS_IS_QUOTA_ON(mp));
>
> xfs_notice(mp, "Quotacheck needed: Please wait.");
>
> @@ -1414,7 +1412,7 @@ xfs_qm_mount_quotas(
> goto write_changes;
> }
>
> - ASSERT(XFS_IS_QUOTA_RUNNING(mp));
> + ASSERT(XFS_IS_QUOTA_ON(mp));
>
> /*
> * Allocate the quotainfo structure inside the mount struct, and
> @@ -1469,7 +1467,7 @@ xfs_qm_mount_quotas(
> * the incore structures are convinced that quotas are
> * off, but the on disk superblock doesn't know that !
> */
> - ASSERT(!(XFS_IS_QUOTA_RUNNING(mp)));
> + ASSERT(!(XFS_IS_QUOTA_ON(mp)));
> xfs_alert(mp, "%s: Superblock update failed!",
> __func__);
> }
> @@ -1641,7 +1639,7 @@ xfs_qm_vop_dqalloc(
> int error;
> uint lockflags;
>
> - if (!XFS_IS_QUOTA_RUNNING(mp) || !XFS_IS_QUOTA_ON(mp))
> + if (!XFS_IS_QUOTA_ON(mp))
> return 0;
>
> lockflags = XFS_ILOCK_EXCL;
> @@ -1772,7 +1770,7 @@ xfs_qm_vop_chown(
>
>
> ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL));
> - ASSERT(XFS_IS_QUOTA_RUNNING(ip->i_mount));
> + ASSERT(XFS_IS_QUOTA_ON(ip->i_mount));
>
> /* old dquot */
> prevdq = *IO_olddq;
> @@ -1825,7 +1823,7 @@ xfs_qm_vop_rename_dqattach(
> struct xfs_mount *mp = i_tab[0]->i_mount;
> int i;
>
> - if (!XFS_IS_QUOTA_RUNNING(mp) || !XFS_IS_QUOTA_ON(mp))
> + if (!XFS_IS_QUOTA_ON(mp))
> return 0;
>
> for (i = 0; (i < 4 && i_tab[i]); i++) {
> @@ -1856,7 +1854,7 @@ xfs_qm_vop_create_dqattach(
> {
> struct xfs_mount *mp = tp->t_mountp;
>
> - if (!XFS_IS_QUOTA_RUNNING(mp) || !XFS_IS_QUOTA_ON(mp))
> + if (!XFS_IS_QUOTA_ON(mp))
> return;
>
> ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL));
> diff --git a/fs/xfs/xfs_qm_syscalls.c b/fs/xfs/xfs_qm_syscalls.c
> index e00067a142a094..b5685ce666f70d 100644
> --- a/fs/xfs/xfs_qm_syscalls.c
> +++ b/fs/xfs/xfs_qm_syscalls.c
> @@ -204,7 +204,7 @@ xfs_qm_scall_quotaon(
> (mp->m_qflags & XFS_GQUOTA_ACCT)))
> return 0;
>
> - if (! XFS_IS_QUOTA_RUNNING(mp))
> + if (!XFS_IS_QUOTA_ON(mp))
> return -ESRCH;
>
> /*
> diff --git a/fs/xfs/xfs_quotaops.c b/fs/xfs/xfs_quotaops.c
> index 88d70c236a5445..07989bd677289a 100644
> --- a/fs/xfs/xfs_quotaops.c
> +++ b/fs/xfs/xfs_quotaops.c
> @@ -60,18 +60,18 @@ xfs_fs_get_quota_state(
> struct xfs_quotainfo *q = mp->m_quotainfo;
>
> memset(state, 0, sizeof(*state));
> - if (!XFS_IS_QUOTA_RUNNING(mp))
> + if (!XFS_IS_QUOTA_ON(mp))
> return 0;
> state->s_incoredqs = q->qi_dquots;
> - if (XFS_IS_UQUOTA_RUNNING(mp))
> + if (XFS_IS_UQUOTA_ON(mp))
> state->s_state[USRQUOTA].flags |= QCI_ACCT_ENABLED;
> if (XFS_IS_UQUOTA_ENFORCED(mp))
> state->s_state[USRQUOTA].flags |= QCI_LIMITS_ENFORCED;
> - if (XFS_IS_GQUOTA_RUNNING(mp))
> + if (XFS_IS_GQUOTA_ON(mp))
> state->s_state[GRPQUOTA].flags |= QCI_ACCT_ENABLED;
> if (XFS_IS_GQUOTA_ENFORCED(mp))
> state->s_state[GRPQUOTA].flags |= QCI_LIMITS_ENFORCED;
> - if (XFS_IS_PQUOTA_RUNNING(mp))
> + if (XFS_IS_PQUOTA_ON(mp))
> state->s_state[PRJQUOTA].flags |= QCI_ACCT_ENABLED;
> if (XFS_IS_PQUOTA_ENFORCED(mp))
> state->s_state[PRJQUOTA].flags |= QCI_LIMITS_ENFORCED;
> @@ -114,10 +114,8 @@ xfs_fs_set_info(
>
> if (sb_rdonly(sb))
> return -EROFS;
> - if (!XFS_IS_QUOTA_RUNNING(mp))
> - return -ENOSYS;
> if (!XFS_IS_QUOTA_ON(mp))
> - return -ESRCH;
> + return -ENOSYS;
> if (info->i_fieldmask & ~XFS_QC_SETINFO_MASK)
> return -EINVAL;
> if ((info->i_fieldmask & XFS_QC_SETINFO_MASK) == 0)
> @@ -164,7 +162,7 @@ xfs_quota_enable(
>
> if (sb_rdonly(sb))
> return -EROFS;
> - if (!XFS_IS_QUOTA_RUNNING(mp))
> + if (!XFS_IS_QUOTA_ON(mp))
> return -ENOSYS;
>
> return xfs_qm_scall_quotaon(mp, xfs_quota_flags(uflags));
> @@ -179,10 +177,8 @@ xfs_quota_disable(
>
> if (sb_rdonly(sb))
> return -EROFS;
> - if (!XFS_IS_QUOTA_RUNNING(mp))
> - return -ENOSYS;
> if (!XFS_IS_QUOTA_ON(mp))
> - return -EINVAL;
> + return -ENOSYS;
>
> return xfs_qm_scall_quotaoff(mp, xfs_quota_flags(uflags));
> }
> @@ -223,10 +219,8 @@ xfs_fs_get_dqblk(
> struct xfs_mount *mp = XFS_M(sb);
> xfs_dqid_t id;
>
> - if (!XFS_IS_QUOTA_RUNNING(mp))
> - return -ENOSYS;
> if (!XFS_IS_QUOTA_ON(mp))
> - return -ESRCH;
> + return -ENOSYS;
>
> id = from_kqid(&init_user_ns, qid);
> return xfs_qm_scall_getquota(mp, id, xfs_quota_type(qid.type), qdq);
> @@ -243,10 +237,8 @@ xfs_fs_get_nextdqblk(
> struct xfs_mount *mp = XFS_M(sb);
> xfs_dqid_t id;
>
> - if (!XFS_IS_QUOTA_RUNNING(mp))
> - return -ENOSYS;
> if (!XFS_IS_QUOTA_ON(mp))
> - return -ESRCH;
> + return -ENOSYS;
>
> id = from_kqid(&init_user_ns, *qid);
> ret = xfs_qm_scall_getquota_next(mp, &id, xfs_quota_type(qid->type),
> @@ -269,10 +261,8 @@ xfs_fs_set_dqblk(
>
> if (sb_rdonly(sb))
> return -EROFS;
> - if (!XFS_IS_QUOTA_RUNNING(mp))
> - return -ENOSYS;
> if (!XFS_IS_QUOTA_ON(mp))
> - return -ESRCH;
> + return -ENOSYS;
>
> return xfs_qm_scall_setqlim(mp, from_kqid(&init_user_ns, qid),
> xfs_quota_type(qid.type), qdq);
> diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c
> index 2c9e26a44546b8..36fc81e52dc22a 100644
> --- a/fs/xfs/xfs_super.c
> +++ b/fs/xfs/xfs_super.c
> @@ -201,25 +201,20 @@ xfs_fs_show_options(
> seq_printf(m, ",swidth=%d",
> (int)XFS_FSB_TO_BB(mp, mp->m_swidth));
>
> - if (mp->m_qflags & XFS_UQUOTA_ACCT) {
> - if (mp->m_qflags & XFS_UQUOTA_ENFD)
> - seq_puts(m, ",usrquota");
> - else
> - seq_puts(m, ",uqnoenforce");
> - }
> + if (mp->m_qflags & XFS_UQUOTA_ENFD)
> + seq_puts(m, ",usrquota");
> + else if (mp->m_qflags & XFS_UQUOTA_ACCT)
> + seq_puts(m, ",uqnoenforce");
>
> - if (mp->m_qflags & XFS_PQUOTA_ACCT) {
> - if (mp->m_qflags & XFS_PQUOTA_ENFD)
> - seq_puts(m, ",prjquota");
> - else
> - seq_puts(m, ",pqnoenforce");
> - }
> - if (mp->m_qflags & XFS_GQUOTA_ACCT) {
> - if (mp->m_qflags & XFS_GQUOTA_ENFD)
> - seq_puts(m, ",grpquota");
> - else
> - seq_puts(m, ",gqnoenforce");
> - }
> + if (mp->m_qflags & XFS_PQUOTA_ENFD)
> + seq_puts(m, ",prjquota");
> + else if (mp->m_qflags & XFS_PQUOTA_ACCT)
> + seq_puts(m, ",pqnoenforce");
> +
> + if (mp->m_qflags & XFS_GQUOTA_ENFD)
> + seq_puts(m, ",grpquota");
> + else if (mp->m_qflags & XFS_GQUOTA_ACCT)
> + seq_puts(m, ",gqnoenforce");
>
> if (!(mp->m_qflags & XFS_ALL_QUOTA_ACCT))
> seq_puts(m, ",noquota");
> @@ -962,8 +957,8 @@ xfs_finish_flags(
> return -EROFS;
> }
>
> - if ((mp->m_qflags & (XFS_GQUOTA_ACCT | XFS_GQUOTA_ACTIVE)) &&
> - (mp->m_qflags & (XFS_PQUOTA_ACCT | XFS_PQUOTA_ACTIVE)) &&
> + if ((mp->m_qflags & XFS_GQUOTA_ACCT) &&
> + (mp->m_qflags & XFS_PQUOTA_ACCT) &&
> !xfs_sb_version_has_pquotino(&mp->m_sb)) {
> xfs_warn(mp,
> "Super block does not support project and group quota together");
> @@ -1228,35 +1223,31 @@ xfs_fs_parse_param(
> case Opt_noquota:
> parsing_mp->m_qflags &= ~XFS_ALL_QUOTA_ACCT;
> parsing_mp->m_qflags &= ~XFS_ALL_QUOTA_ENFD;
> - parsing_mp->m_qflags &= ~XFS_ALL_QUOTA_ACTIVE;
> return 0;
> case Opt_quota:
> case Opt_uquota:
> case Opt_usrquota:
> - parsing_mp->m_qflags |= (XFS_UQUOTA_ACCT | XFS_UQUOTA_ACTIVE |
> - XFS_UQUOTA_ENFD);
> + parsing_mp->m_qflags |= (XFS_UQUOTA_ACCT | XFS_UQUOTA_ENFD);
> return 0;
> case Opt_qnoenforce:
> case Opt_uqnoenforce:
> - parsing_mp->m_qflags |= (XFS_UQUOTA_ACCT | XFS_UQUOTA_ACTIVE);
> + parsing_mp->m_qflags |= XFS_UQUOTA_ACCT;
> parsing_mp->m_qflags &= ~XFS_UQUOTA_ENFD;
> return 0;
> case Opt_pquota:
> case Opt_prjquota:
> - parsing_mp->m_qflags |= (XFS_PQUOTA_ACCT | XFS_PQUOTA_ACTIVE |
> - XFS_PQUOTA_ENFD);
> + parsing_mp->m_qflags |= (XFS_PQUOTA_ACCT | XFS_PQUOTA_ENFD);
> return 0;
> case Opt_pqnoenforce:
> - parsing_mp->m_qflags |= (XFS_PQUOTA_ACCT | XFS_PQUOTA_ACTIVE);
> + parsing_mp->m_qflags |= XFS_PQUOTA_ACCT;
> parsing_mp->m_qflags &= ~XFS_PQUOTA_ENFD;
> return 0;
> case Opt_gquota:
> case Opt_grpquota:
> - parsing_mp->m_qflags |= (XFS_GQUOTA_ACCT | XFS_GQUOTA_ACTIVE |
> - XFS_GQUOTA_ENFD);
> + parsing_mp->m_qflags |= (XFS_GQUOTA_ACCT | XFS_GQUOTA_ENFD);
> return 0;
> case Opt_gqnoenforce:
> - parsing_mp->m_qflags |= (XFS_GQUOTA_ACCT | XFS_GQUOTA_ACTIVE);
> + parsing_mp->m_qflags |= XFS_GQUOTA_ACCT;
> parsing_mp->m_qflags &= ~XFS_GQUOTA_ENFD;
> return 0;
> case Opt_discard:
> diff --git a/fs/xfs/xfs_trans_dquot.c b/fs/xfs/xfs_trans_dquot.c
> index b7e4b05a559bdb..eb76bc5bed9d0a 100644
> --- a/fs/xfs/xfs_trans_dquot.c
> +++ b/fs/xfs/xfs_trans_dquot.c
> @@ -132,8 +132,7 @@ xfs_trans_mod_dquot_byino(
> {
> xfs_mount_t *mp = tp->t_mountp;
>
> - if (!XFS_IS_QUOTA_RUNNING(mp) ||
> - !XFS_IS_QUOTA_ON(mp) ||
> + if (!XFS_IS_QUOTA_ON(mp) ||
> xfs_is_quota_inode(&mp->m_sb, ip->i_ino))
> return;
>
> @@ -192,7 +191,7 @@ xfs_trans_mod_dquot(
> struct xfs_dqtrx *qtrx;
>
> ASSERT(tp);
> - ASSERT(XFS_IS_QUOTA_RUNNING(tp->t_mountp));
> + ASSERT(XFS_IS_QUOTA_ON(tp->t_mountp));
> qtrx = NULL;
>
> if (!delta)
> @@ -738,7 +737,7 @@ xfs_trans_reserve_quota_bydquots(
> {
> int error;
>
> - if (!XFS_IS_QUOTA_RUNNING(mp) || !XFS_IS_QUOTA_ON(mp))
> + if (!XFS_IS_QUOTA_ON(mp))
> return 0;
>
> ASSERT(flags & XFS_QMOPT_RESBLK_MASK);
> @@ -795,7 +794,7 @@ xfs_trans_reserve_quota_nblks(
> unsigned int qflags = 0;
> int error;
>
> - if (!XFS_IS_QUOTA_RUNNING(mp) || !XFS_IS_QUOTA_ON(mp))
> + if (!XFS_IS_QUOTA_ON(mp))
> return 0;
>
> ASSERT(!xfs_is_quota_inode(&mp->m_sb, ip->i_ino));
> @@ -836,7 +835,7 @@ xfs_trans_reserve_quota_icreate(
> {
> struct xfs_mount *mp = tp->t_mountp;
>
> - if (!XFS_IS_QUOTA_RUNNING(mp) || !XFS_IS_QUOTA_ON(mp))
> + if (!XFS_IS_QUOTA_ON(mp))
> return 0;
>
> return xfs_trans_reserve_quota_bydquots(tp, mp, udqp, gdqp, pdqp,
> --
> 2.30.2
>
--
Carlos
next prev parent reply other threads:[~2021-07-14 11:47 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-12 11:14 don't allow disabling quota accounting on a mounted file system Christoph Hellwig
2021-07-12 11:14 ` [PATCH 1/3] xfs: remove support for " Christoph Hellwig
2021-07-14 11:10 ` Carlos Maiolino
2021-07-20 6:33 ` Christoph Hellwig
2021-07-14 21:44 ` Darrick J. Wong
2021-07-15 17:15 ` Darrick J. Wong
2021-07-20 6:35 ` Christoph Hellwig
2021-07-12 11:14 ` [PATCH 2/3] xfs: remove the flags argument to xfs_qm_dquot_walk Christoph Hellwig
2021-07-14 11:11 ` Carlos Maiolino
2021-07-14 21:45 ` Darrick J. Wong
2021-07-12 11:14 ` [PATCH 3/3] xfs: remove the active vs running quota differentiation Christoph Hellwig
2021-07-14 11:47 ` Carlos Maiolino [this message]
2021-07-14 21:47 ` Darrick J. Wong
2021-07-22 7:26 don't allow disabling quota accounting on a mounted file system v2 Christoph Hellwig
2021-07-22 7:26 ` [PATCH 3/3] xfs: remove the active vs running quota differentiation Christoph Hellwig
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210714114707.ppv7wt3vv6mqec36@omega.lan \
--to=cmaiolino@redhat.com \
--cc=hch@lst.de \
--cc=linux-xfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).