Message ID | 20210318041736.GB22094@magnolia (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | quota: report warning limits for realtime space quotas | expand |
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 --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 */