All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Sandeen <sandeen@sandeen.net>
To: "Darrick J. Wong" <darrick.wong@oracle.com>,
	Eric Sandeen <sandeen@redhat.com>
Cc: linux-xfs <linux-xfs@vger.kernel.org>
Subject: Re: [PATCH 6/6] xfs: allow individual quota grace period extension
Date: Tue, 19 May 2020 12:21:07 -0500	[thread overview]
Message-ID: <c648d2e4-03f7-8ad4-6f60-3d1b5c8aa894@sandeen.net> (raw)
In-Reply-To: <20200519163908.GQ17627@magnolia>

On 5/19/20 11:39 AM, Darrick J. Wong wrote:
> On Mon, May 18, 2020 at 01:52:16PM -0500, Eric Sandeen wrote:
>> The only grace period which can be set in the kernel today is for id 0,
>> i.e. the default grace period for all users.  However, setting an
>> individual grace period is useful; for example:
>>
>>  Alice has a soft quota of 100 inodes, and a hard quota of 200 inodes
>>  Alice uses 150 inodes, and enters a short grace period
>>  Alice really needs to use those 150 inodes past the grace period
>>  The administrator extends Alice's grace period until next Monday
>>
>> vfs quota users such as ext4 can do this today, with setquota -T
> 
> Does setquota -T work on an XFS filesystem? 

With 

[PATCH] quota-tools: Set FS_DQ_TIMER_MASK for individual xfs grace times

it does.

> If so, does that mean that
> xfs had a functionality gap where the admin could extend someone's grace
> period on ext4 but trying the exact same command on xfs would do
> nothing?  Or would it at least error out?

The former; no error.  quota-tools didn't set the timer mask, so quotactl
wasn't set up to change it.  In addition, we ignored the change for id !=0.
 
>> To enable this for XFS, we simply move the timelimit assignment out
>> from under the (id == 0) test.  Default setting remains under (id == 0).
>> Note that this now is consistent with how we set warnings.
>>
>> (Userspace requires updates to enable this as well; xfs_quota needs to
>> parse new options, and setquota needs to set appropriate field flags.)
> 
> So ... xfs_quota simply never had the ability to do this, but what does
> "setquota needs to set appropriate field flags" mean exactly?

It means:

[PATCH] quota-tools: Set FS_DQ_TIMER_MASK for individual xfs grace times

+		if (flags & COMMIT_TIMES) /* indiv grace period */
+			xdqblk.d_fieldmask |= FS_DQ_TIMER_MASK;

-Eric
 


  reply	other threads:[~2020-05-19 17:21 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-18 18:46 [PATCH 0/SEVERAL] xfs, xfstests, xfsprogs: quota timer updates Eric Sandeen
2020-05-18 18:48 ` [PATCH 0/6] xfs: quota timer enhancements Eric Sandeen
2020-05-18 18:48   ` [PATCH 1/6] xfs: group quota should return EDQUOT when prj quota enabled Eric Sandeen
2020-05-19 16:22     ` Darrick J. Wong
2020-05-18 18:49   ` [PATCH 2/6] xfs: always return -ENOSPC on project quota reservation failure Eric Sandeen
2020-05-19 16:18     ` Darrick J. Wong
2020-05-18 18:49   ` [PATCH 3/6] xfs: fix up some whitespace in quota code Eric Sandeen
2020-05-19 16:25     ` Darrick J. Wong
2020-05-18 18:50   ` [PATCH 4/6] xfs: pass xfs_dquot to xfs_qm_adjust_dqtimers Eric Sandeen
2020-05-19 16:26     ` Darrick J. Wong
2020-05-18 18:51   ` [PATCH 5/6] xfs: per-type quota timers and warn limits Eric Sandeen
2020-05-19 16:27     ` Darrick J. Wong
2020-05-20 18:41     ` [PATCH 4.5/6] xfs: switch xfs_get_defquota to take explicit type Eric Sandeen
2020-05-20 20:36       ` Darrick J. Wong
2020-05-20 20:41         ` Eric Sandeen
2020-05-20 20:49           ` Darrick J. Wong
2020-05-20 18:43     ` [PATCH 5/6 V2] xfs: per-type quota timers and warn limits Eric Sandeen
2020-05-20 20:31       ` Darrick J. Wong
2020-05-20 20:42         ` Eric Sandeen
2020-05-18 18:52   ` [PATCH 6/6] xfs: allow individual quota grace period extension Eric Sandeen
2020-05-19 16:39     ` Darrick J. Wong
2020-05-19 17:21       ` Eric Sandeen [this message]
2020-05-18 19:23 ` [PATCH 0/1] xfs_quota: allow individual timer extension Eric Sandeen
2020-05-18 19:24   ` [PATCH 1/1] " Eric Sandeen
2020-05-18 20:04     ` Eric Sandeen
2020-05-18 20:09     ` [PATCH 1/1 V2] " Eric Sandeen
2020-05-19 16:38       ` Darrick J. Wong
2020-05-19 21:34         ` Darrick J. Wong
2020-05-18 19:59 ` [PATCH 0/4] fstests: more quota related tests Eric Sandeen
2020-05-18 19:59   ` [PATCH 1/4] xfs: make sure our default quota warning limits and grace periods survive quotacheck Eric Sandeen
2020-05-31 16:17     ` Eryu Guan
2020-05-18 20:00   ` [PATCH 2/4] generic: test per-type quota softlimit enforcement timeout Eric Sandeen
2020-05-31 16:15     ` Eryu Guan
2020-06-01 12:48       ` Zorro Lang
2020-06-01 14:36         ` Eric Sandeen
2020-06-01 16:39         ` Darrick J. Wong
2020-06-11  5:12           ` Zorro Lang
2020-06-11 15:40             ` Darrick J. Wong
2020-05-18 20:00   ` [PATCH 3/4] fstests: individual user grace period extension via setquota Eric Sandeen
2020-05-18 20:01   ` [PATCH 4/4] fstests: individual user grace period extension via xfs_quota Eric Sandeen
2020-05-20 15:39   ` [PATCH 0/4] fstests: more quota related tests Darrick J. Wong
2020-05-20 15:46     ` Eric Sandeen

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=c648d2e4-03f7-8ad4-6f60-3d1b5c8aa894@sandeen.net \
    --to=sandeen@sandeen.net \
    --cc=darrick.wong@oracle.com \
    --cc=linux-xfs@vger.kernel.org \
    --cc=sandeen@redhat.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.