diff mbox series

quota: report warning limits for realtime space quotas

Message ID 20210318041736.GB22094@magnolia (mailing list archive)
State New, archived
Headers show
Series quota: report warning limits for realtime space quotas | expand

Commit Message

Darrick J. Wong March 18, 2021, 4:17 a.m. UTC
From: Darrick J. Wong <djwong@kernel.org>

Report the number of warnings that a user will get for exceeding the
soft limit of a realtime volume.  This plugs a gap needed before we
can land a realtime quota implementation for XFS in the next cycle.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
---
 fs/quota/quota.c               |    1 +
 include/uapi/linux/dqblk_xfs.h |    5 ++++-
 2 files changed, 5 insertions(+), 1 deletion(-)

Comments

Jan Kara March 18, 2021, 4:04 p.m. UTC | #1
On Wed 17-03-21 21:17:36, Darrick J. Wong wrote:
> From: Darrick J. Wong <djwong@kernel.org>
> 
> Report the number of warnings that a user will get for exceeding the
> soft limit of a realtime volume.  This plugs a gap needed before we
> can land a realtime quota implementation for XFS in the next cycle.
> 
> Signed-off-by: Darrick J. Wong <djwong@kernel.org>

Thanks. I've added the patch to my tree.

								Honza

> ---
>  fs/quota/quota.c               |    1 +
>  include/uapi/linux/dqblk_xfs.h |    5 ++++-
>  2 files changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/fs/quota/quota.c b/fs/quota/quota.c
> index 6d16b2be5ac4..6ad06727e8ea 100644
> --- a/fs/quota/quota.c
> +++ b/fs/quota/quota.c
> @@ -471,6 +471,7 @@ static int quota_getstatev(struct super_block *sb, int type,
>  	fqs->qs_rtbtimelimit = state.s_state[type].rt_spc_timelimit;
>  	fqs->qs_bwarnlimit = state.s_state[type].spc_warnlimit;
>  	fqs->qs_iwarnlimit = state.s_state[type].ino_warnlimit;
> +	fqs->qs_rtbwarnlimit = state.s_state[type].rt_spc_warnlimit;
>  
>  	/* Inodes may be allocated even if inactive; copy out if present */
>  	if (state.s_state[USRQUOTA].ino) {
> diff --git a/include/uapi/linux/dqblk_xfs.h b/include/uapi/linux/dqblk_xfs.h
> index c71d909addda..8cda3e62e0e7 100644
> --- a/include/uapi/linux/dqblk_xfs.h
> +++ b/include/uapi/linux/dqblk_xfs.h
> @@ -219,7 +219,10 @@ struct fs_quota_statv {
>  	__s32			qs_rtbtimelimit;/* limit for rt blks timer */
>  	__u16			qs_bwarnlimit;	/* limit for num warnings */
>  	__u16			qs_iwarnlimit;	/* limit for num warnings */
> -	__u64			qs_pad2[8];	/* for future proofing */
> +	__u16			qs_rtbwarnlimit;/* limit for rt blks warnings */
> +	__u16			qs_pad3;
> +	__u32			qs_pad4;
> +	__u64			qs_pad2[7];	/* for future proofing */
>  };
>  
>  #endif	/* _LINUX_DQBLK_XFS_H */
diff mbox series

Patch

diff --git a/fs/quota/quota.c b/fs/quota/quota.c
index 6d16b2be5ac4..6ad06727e8ea 100644
--- a/fs/quota/quota.c
+++ b/fs/quota/quota.c
@@ -471,6 +471,7 @@  static int quota_getstatev(struct super_block *sb, int type,
 	fqs->qs_rtbtimelimit = state.s_state[type].rt_spc_timelimit;
 	fqs->qs_bwarnlimit = state.s_state[type].spc_warnlimit;
 	fqs->qs_iwarnlimit = state.s_state[type].ino_warnlimit;
+	fqs->qs_rtbwarnlimit = state.s_state[type].rt_spc_warnlimit;
 
 	/* Inodes may be allocated even if inactive; copy out if present */
 	if (state.s_state[USRQUOTA].ino) {
diff --git a/include/uapi/linux/dqblk_xfs.h b/include/uapi/linux/dqblk_xfs.h
index c71d909addda..8cda3e62e0e7 100644
--- a/include/uapi/linux/dqblk_xfs.h
+++ b/include/uapi/linux/dqblk_xfs.h
@@ -219,7 +219,10 @@  struct fs_quota_statv {
 	__s32			qs_rtbtimelimit;/* limit for rt blks timer */
 	__u16			qs_bwarnlimit;	/* limit for num warnings */
 	__u16			qs_iwarnlimit;	/* limit for num warnings */
-	__u64			qs_pad2[8];	/* for future proofing */
+	__u16			qs_rtbwarnlimit;/* limit for rt blks warnings */
+	__u16			qs_pad3;
+	__u32			qs_pad4;
+	__u64			qs_pad2[7];	/* for future proofing */
 };
 
 #endif	/* _LINUX_DQBLK_XFS_H */