* [PATCH v4 0/5] xfs: remove several typedefs in quota code
@ 2019-11-12 21:33 Pavel Reichl
2019-11-12 21:33 ` [PATCH v4 1/5] xfs: remove the xfs_disk_dquot_t and xfs_dquot_t Pavel Reichl
` (5 more replies)
0 siblings, 6 replies; 21+ messages in thread
From: Pavel Reichl @ 2019-11-12 21:33 UTC (permalink / raw)
To: linux-xfs; +Cc: Pavel Reichl
Eliminate some typedefs.
Pavel Reichl (5):
xfs: remove the xfs_disk_dquot_t and xfs_dquot_t
xfs: remove the xfs_quotainfo_t typedef
xfs: remove the xfs_dq_logitem_t typedef
xfs: remove the xfs_qoff_logitem_t typedef
Replace function declartion by actual definition
fs/xfs/libxfs/xfs_dquot_buf.c | 8 +-
fs/xfs/libxfs/xfs_format.h | 10 +--
fs/xfs/libxfs/xfs_trans_resv.c | 6 +-
fs/xfs/xfs_dquot.c | 20 ++---
fs/xfs/xfs_dquot.h | 98 +++++++++++------------
fs/xfs/xfs_dquot_item.h | 34 ++++----
fs/xfs/xfs_log_recover.c | 5 +-
fs/xfs/xfs_qm.c | 50 ++++++------
fs/xfs/xfs_qm.h | 6 +-
fs/xfs/xfs_qm_bhv.c | 6 +-
fs/xfs/xfs_qm_syscalls.c | 139 ++++++++++++++++-----------------
fs/xfs/xfs_trans_dquot.c | 54 ++++++-------
12 files changed, 217 insertions(+), 219 deletions(-)
--
2.23.0
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH v4 1/5] xfs: remove the xfs_disk_dquot_t and xfs_dquot_t
2019-11-12 21:33 [PATCH v4 0/5] xfs: remove several typedefs in quota code Pavel Reichl
@ 2019-11-12 21:33 ` Pavel Reichl
2019-11-13 4:45 ` Darrick J. Wong
2019-11-14 1:29 ` Dave Chinner
2019-11-12 21:33 ` [PATCH v4 2/5] xfs: remove the xfs_quotainfo_t typedef Pavel Reichl
` (4 subsequent siblings)
5 siblings, 2 replies; 21+ messages in thread
From: Pavel Reichl @ 2019-11-12 21:33 UTC (permalink / raw)
To: linux-xfs; +Cc: Pavel Reichl
Signed-off-by: Pavel Reichl <preichl@redhat.com>
---
fs/xfs/libxfs/xfs_dquot_buf.c | 8 +--
fs/xfs/libxfs/xfs_format.h | 10 ++--
fs/xfs/libxfs/xfs_trans_resv.c | 1 -
fs/xfs/xfs_dquot.c | 18 +++----
fs/xfs/xfs_dquot.h | 98 +++++++++++++++++-----------------
fs/xfs/xfs_log_recover.c | 5 +-
fs/xfs/xfs_qm.c | 30 +++++------
fs/xfs/xfs_qm_bhv.c | 6 +--
fs/xfs/xfs_trans_dquot.c | 42 +++++++--------
9 files changed, 110 insertions(+), 108 deletions(-)
diff --git a/fs/xfs/libxfs/xfs_dquot_buf.c b/fs/xfs/libxfs/xfs_dquot_buf.c
index e8bd688a4073..bedc1e752b60 100644
--- a/fs/xfs/libxfs/xfs_dquot_buf.c
+++ b/fs/xfs/libxfs/xfs_dquot_buf.c
@@ -35,10 +35,10 @@ xfs_calc_dquots_per_chunk(
xfs_failaddr_t
xfs_dquot_verify(
- struct xfs_mount *mp,
- xfs_disk_dquot_t *ddq,
- xfs_dqid_t id,
- uint type) /* used only during quotacheck */
+ struct xfs_mount *mp,
+ struct xfs_disk_dquot *ddq,
+ xfs_dqid_t id,
+ uint type) /* used only during quotacheck */
{
/*
* We can encounter an uninitialized dquot buffer for 2 reasons:
diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h
index c968b60cee15..4cae17f35e94 100644
--- a/fs/xfs/libxfs/xfs_format.h
+++ b/fs/xfs/libxfs/xfs_format.h
@@ -1144,11 +1144,11 @@ static inline void xfs_dinode_put_rdev(struct xfs_dinode *dip, xfs_dev_t rdev)
/*
* This is the main portion of the on-disk representation of quota
- * information for a user. This is the q_core of the xfs_dquot_t that
+ * information for a user. This is the q_core of the struct xfs_dquot that
* is kept in kernel memory. We pad this with some more expansion room
* to construct the on disk structure.
*/
-typedef struct xfs_disk_dquot {
+struct xfs_disk_dquot {
__be16 d_magic; /* dquot magic = XFS_DQUOT_MAGIC */
__u8 d_version; /* dquot version */
__u8 d_flags; /* XFS_DQ_USER/PROJ/GROUP */
@@ -1171,15 +1171,15 @@ typedef struct xfs_disk_dquot {
__be32 d_rtbtimer; /* similar to above; for RT disk blocks */
__be16 d_rtbwarns; /* warnings issued wrt RT disk blocks */
__be16 d_pad;
-} xfs_disk_dquot_t;
+};
/*
* This is what goes on disk. This is separated from the xfs_disk_dquot because
* carrying the unnecessary padding would be a waste of memory.
*/
typedef struct xfs_dqblk {
- xfs_disk_dquot_t dd_diskdq; /* portion that lives incore as well */
- char dd_fill[4]; /* filling for posterity */
+ struct xfs_disk_dquot dd_diskdq; /* portion living incore as well */
+ char dd_fill[4];/* filling for posterity */
/*
* These two are only present on filesystems with the CRC bits set.
diff --git a/fs/xfs/libxfs/xfs_trans_resv.c b/fs/xfs/libxfs/xfs_trans_resv.c
index d12bbd526e7c..271cca13565b 100644
--- a/fs/xfs/libxfs/xfs_trans_resv.c
+++ b/fs/xfs/libxfs/xfs_trans_resv.c
@@ -718,7 +718,6 @@ xfs_calc_clear_agi_bucket_reservation(
/*
* Adjusting quota limits.
- * the xfs_disk_dquot_t: sizeof(struct xfs_disk_dquot)
*/
STATIC uint
xfs_calc_qm_setqlim_reservation(void)
diff --git a/fs/xfs/xfs_dquot.c b/fs/xfs/xfs_dquot.c
index bcd4247b5014..5b089afd7087 100644
--- a/fs/xfs/xfs_dquot.c
+++ b/fs/xfs/xfs_dquot.c
@@ -48,7 +48,7 @@ static struct lock_class_key xfs_dquot_project_class;
*/
void
xfs_qm_dqdestroy(
- xfs_dquot_t *dqp)
+ struct xfs_dquot *dqp)
{
ASSERT(list_empty(&dqp->q_lru));
@@ -113,8 +113,8 @@ xfs_qm_adjust_dqlimits(
*/
void
xfs_qm_adjust_dqtimers(
- xfs_mount_t *mp,
- xfs_disk_dquot_t *d)
+ struct xfs_mount *mp,
+ struct xfs_disk_dquot *d)
{
ASSERT(d->d_id);
@@ -497,7 +497,7 @@ xfs_dquot_from_disk(
struct xfs_disk_dquot *ddqp = bp->b_addr + dqp->q_bufoffset;
/* copy everything from disk dquot to the incore dquot */
- memcpy(&dqp->q_core, ddqp, sizeof(xfs_disk_dquot_t));
+ memcpy(&dqp->q_core, ddqp, sizeof(struct xfs_disk_dquot));
/*
* Reservation counters are defined as reservation plus current usage
@@ -989,7 +989,7 @@ xfs_qm_dqput(
*/
void
xfs_qm_dqrele(
- xfs_dquot_t *dqp)
+ struct xfs_dquot *dqp)
{
if (!dqp)
return;
@@ -1019,7 +1019,7 @@ xfs_qm_dqflush_done(
struct xfs_log_item *lip)
{
xfs_dq_logitem_t *qip = (struct xfs_dq_logitem *)lip;
- xfs_dquot_t *dqp = qip->qli_dquot;
+ struct xfs_dquot *dqp = qip->qli_dquot;
struct xfs_ail *ailp = lip->li_ailp;
/*
@@ -1130,7 +1130,7 @@ xfs_qm_dqflush(
}
/* This is the only portion of data that needs to persist */
- memcpy(ddqp, &dqp->q_core, sizeof(xfs_disk_dquot_t));
+ memcpy(ddqp, &dqp->q_core, sizeof(struct xfs_disk_dquot));
/*
* Clear the dirty field and remember the flush lsn for later use.
@@ -1188,8 +1188,8 @@ xfs_qm_dqflush(
*/
void
xfs_dqlock2(
- xfs_dquot_t *d1,
- xfs_dquot_t *d2)
+ struct xfs_dquot *d1,
+ struct xfs_dquot *d2)
{
if (d1 && d2) {
ASSERT(d1 != d2);
diff --git a/fs/xfs/xfs_dquot.h b/fs/xfs/xfs_dquot.h
index 4fe85709d55d..831e4270cf65 100644
--- a/fs/xfs/xfs_dquot.h
+++ b/fs/xfs/xfs_dquot.h
@@ -30,33 +30,36 @@ enum {
/*
* The incore dquot structure
*/
-typedef struct xfs_dquot {
- uint dq_flags; /* various flags (XFS_DQ_*) */
- struct list_head q_lru; /* global free list of dquots */
- struct xfs_mount*q_mount; /* filesystem this relates to */
- uint q_nrefs; /* # active refs from inodes */
- xfs_daddr_t q_blkno; /* blkno of dquot buffer */
- int q_bufoffset; /* off of dq in buffer (# dquots) */
- xfs_fileoff_t q_fileoffset; /* offset in quotas file */
-
- xfs_disk_dquot_t q_core; /* actual usage & quotas */
- xfs_dq_logitem_t q_logitem; /* dquot log item */
- xfs_qcnt_t q_res_bcount; /* total regular nblks used+reserved */
- xfs_qcnt_t q_res_icount; /* total inos allocd+reserved */
- xfs_qcnt_t q_res_rtbcount;/* total realtime blks used+reserved */
- xfs_qcnt_t q_prealloc_lo_wmark;/* prealloc throttle wmark */
- xfs_qcnt_t q_prealloc_hi_wmark;/* prealloc disabled wmark */
- int64_t q_low_space[XFS_QLOWSP_MAX];
- struct mutex q_qlock; /* quota lock */
- struct completion q_flush; /* flush completion queue */
- atomic_t q_pincount; /* dquot pin count */
- wait_queue_head_t q_pinwait; /* dquot pinning wait queue */
-} xfs_dquot_t;
+struct xfs_dquot {
+ uint dq_flags;
+ struct list_head q_lru;
+ struct xfs_mount *q_mount;
+ uint q_nrefs;
+ xfs_daddr_t q_blkno;
+ int q_bufoffset;
+ xfs_fileoff_t q_fileoffset;
+
+ struct xfs_disk_dquot q_core;
+ xfs_dq_logitem_t q_logitem;
+ /* total regular nblks used+reserved */
+ xfs_qcnt_t q_res_bcount;
+ /* total inos allocd+reserved */
+ xfs_qcnt_t q_res_icount;
+ /* total realtime blks used+reserved */
+ xfs_qcnt_t q_res_rtbcount;
+ xfs_qcnt_t q_prealloc_lo_wmark;
+ xfs_qcnt_t q_prealloc_hi_wmark;
+ int64_t q_low_space[XFS_QLOWSP_MAX];
+ struct mutex q_qlock;
+ struct completion q_flush;
+ atomic_t q_pincount;
+ struct wait_queue_head q_pinwait;
+};
/*
* Lock hierarchy for q_qlock:
* XFS_QLOCK_NORMAL is the implicit default,
- * XFS_QLOCK_NESTED is the dquot with the higher id in xfs_dqlock2
+ * XFS_QLOCK_NESTED is the dquot with the higher id in xfs_dqlock2
*/
enum {
XFS_QLOCK_NORMAL = 0,
@@ -64,21 +67,21 @@ enum {
};
/*
- * Manage the q_flush completion queue embedded in the dquot. This completion
+ * Manage the q_flush completion queue embedded in the dquot. This completion
* queue synchronizes processes attempting to flush the in-core dquot back to
* disk.
*/
-static inline void xfs_dqflock(xfs_dquot_t *dqp)
+static inline void xfs_dqflock(struct xfs_dquot *dqp)
{
wait_for_completion(&dqp->q_flush);
}
-static inline bool xfs_dqflock_nowait(xfs_dquot_t *dqp)
+static inline bool xfs_dqflock_nowait(struct xfs_dquot *dqp)
{
return try_wait_for_completion(&dqp->q_flush);
}
-static inline void xfs_dqfunlock(xfs_dquot_t *dqp)
+static inline void xfs_dqfunlock(struct xfs_dquot *dqp)
{
complete(&dqp->q_flush);
}
@@ -112,7 +115,7 @@ static inline int xfs_this_quota_on(struct xfs_mount *mp, int type)
}
}
-static inline xfs_dquot_t *xfs_inode_dquot(struct xfs_inode *ip, int type)
+static inline struct xfs_dquot *xfs_inode_dquot(struct xfs_inode *ip, int type)
{
switch (type & XFS_DQ_ALLTYPES) {
case XFS_DQ_USER:
@@ -147,31 +150,30 @@ static inline bool xfs_dquot_lowsp(struct xfs_dquot *dqp)
#define XFS_QM_ISPDQ(dqp) ((dqp)->dq_flags & XFS_DQ_PROJ)
#define XFS_QM_ISGDQ(dqp) ((dqp)->dq_flags & XFS_DQ_GROUP)
-extern void xfs_qm_dqdestroy(xfs_dquot_t *);
-extern int xfs_qm_dqflush(struct xfs_dquot *, struct xfs_buf **);
-extern void xfs_qm_dqunpin_wait(xfs_dquot_t *);
-extern void xfs_qm_adjust_dqtimers(xfs_mount_t *,
- xfs_disk_dquot_t *);
-extern void xfs_qm_adjust_dqlimits(struct xfs_mount *,
- struct xfs_dquot *);
-extern xfs_dqid_t xfs_qm_id_for_quotatype(struct xfs_inode *ip,
- uint type);
-extern int xfs_qm_dqget(struct xfs_mount *mp, xfs_dqid_t id,
+void xfs_qm_dqdestroy(struct xfs_dquot *dqp);
+int xfs_qm_dqflush(struct xfs_dquot *dqp, struct xfs_buf **bpp);
+void xfs_qm_dqunpin_wait(struct xfs_dquot *dqp);
+void xfs_qm_adjust_dqtimers(struct xfs_mount *mp,
+ struct xfs_disk_dquot *d);
+void xfs_qm_adjust_dqlimits(struct xfs_mount *mp,
+ struct xfs_dquot *d);
+xfs_dqid_t xfs_qm_id_for_quotatype(struct xfs_inode *ip, uint type);
+int xfs_qm_dqget(struct xfs_mount *mp, xfs_dqid_t id,
uint type, bool can_alloc,
struct xfs_dquot **dqpp);
-extern int xfs_qm_dqget_inode(struct xfs_inode *ip, uint type,
- bool can_alloc,
- struct xfs_dquot **dqpp);
-extern int xfs_qm_dqget_next(struct xfs_mount *mp, xfs_dqid_t id,
+int xfs_qm_dqget_inode(struct xfs_inode *ip, uint type,
+ bool can_alloc,
+ struct xfs_dquot **dqpp);
+int xfs_qm_dqget_next(struct xfs_mount *mp, xfs_dqid_t id,
uint type, struct xfs_dquot **dqpp);
-extern int xfs_qm_dqget_uncached(struct xfs_mount *mp,
- xfs_dqid_t id, uint type,
- struct xfs_dquot **dqpp);
-extern void xfs_qm_dqput(xfs_dquot_t *);
+int xfs_qm_dqget_uncached(struct xfs_mount *mp,
+ xfs_dqid_t id, uint type,
+ struct xfs_dquot **dqpp);
+void xfs_qm_dqput(struct xfs_dquot *dqp);
-extern void xfs_dqlock2(struct xfs_dquot *, struct xfs_dquot *);
+void xfs_dqlock2(struct xfs_dquot *, struct xfs_dquot *);
-extern void xfs_dquot_set_prealloc_limits(struct xfs_dquot *);
+void xfs_dquot_set_prealloc_limits(struct xfs_dquot *);
static inline struct xfs_dquot *xfs_qm_dqhold(struct xfs_dquot *dqp)
{
diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c
index 02f2147952b3..ecea4a1c31bd 100644
--- a/fs/xfs/xfs_log_recover.c
+++ b/fs/xfs/xfs_log_recover.c
@@ -2576,6 +2576,7 @@ xlog_recover_do_reg_buffer(
int bit;
int nbits;
xfs_failaddr_t fa;
+ const size_t size_disk_dquot = sizeof(struct xfs_disk_dquot);
trace_xfs_log_recover_buf_reg_buf(mp->m_log, buf_f);
@@ -2618,7 +2619,7 @@ xlog_recover_do_reg_buffer(
"XFS: NULL dquot in %s.", __func__);
goto next;
}
- if (item->ri_buf[i].i_len < sizeof(xfs_disk_dquot_t)) {
+ if (item->ri_buf[i].i_len < size_disk_dquot) {
xfs_alert(mp,
"XFS: dquot too small (%d) in %s.",
item->ri_buf[i].i_len, __func__);
@@ -3249,7 +3250,7 @@ xlog_recover_dquot_pass2(
xfs_alert(log->l_mp, "NULL dquot in %s.", __func__);
return -EFSCORRUPTED;
}
- if (item->ri_buf[1].i_len < sizeof(xfs_disk_dquot_t)) {
+ if (item->ri_buf[1].i_len < sizeof(struct xfs_disk_dquot)) {
xfs_alert(log->l_mp, "dquot too small (%d) in %s.",
item->ri_buf[1].i_len, __func__);
return -EFSCORRUPTED;
diff --git a/fs/xfs/xfs_qm.c b/fs/xfs/xfs_qm.c
index 66ea8e4fca86..035930a4f0dd 100644
--- a/fs/xfs/xfs_qm.c
+++ b/fs/xfs/xfs_qm.c
@@ -244,14 +244,14 @@ xfs_qm_unmount_quotas(
STATIC int
xfs_qm_dqattach_one(
- xfs_inode_t *ip,
- xfs_dqid_t id,
- uint type,
- bool doalloc,
- xfs_dquot_t **IO_idqpp)
+ struct xfs_inode *ip,
+ xfs_dqid_t id,
+ uint type,
+ bool doalloc,
+ struct xfs_dquot **IO_idqpp)
{
- xfs_dquot_t *dqp;
- int error;
+ struct xfs_dquot *dqp;
+ int error;
ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL));
error = 0;
@@ -544,8 +544,8 @@ xfs_qm_set_defquota(
uint type,
xfs_quotainfo_t *qinf)
{
- xfs_dquot_t *dqp;
- struct xfs_def_quota *defq;
+ struct xfs_dquot *dqp;
+ struct xfs_def_quota *defq;
struct xfs_disk_dquot *ddqp;
int error;
@@ -1746,14 +1746,14 @@ xfs_qm_vop_dqalloc(
* Actually transfer ownership, and do dquot modifications.
* These were already reserved.
*/
-xfs_dquot_t *
+struct xfs_dquot *
xfs_qm_vop_chown(
- xfs_trans_t *tp,
- xfs_inode_t *ip,
- xfs_dquot_t **IO_olddq,
- xfs_dquot_t *newdq)
+ struct xfs_trans *tp,
+ struct xfs_inode *ip,
+ struct xfs_dquot **IO_olddq,
+ struct xfs_dquot *newdq)
{
- xfs_dquot_t *prevdq;
+ struct xfs_dquot *prevdq;
uint bfield = XFS_IS_REALTIME_INODE(ip) ?
XFS_TRANS_DQ_RTBCOUNT : XFS_TRANS_DQ_BCOUNT;
diff --git a/fs/xfs/xfs_qm_bhv.c b/fs/xfs/xfs_qm_bhv.c
index 5d72e88598b4..b784a3751fe2 100644
--- a/fs/xfs/xfs_qm_bhv.c
+++ b/fs/xfs/xfs_qm_bhv.c
@@ -54,11 +54,11 @@ xfs_fill_statvfs_from_dquot(
*/
void
xfs_qm_statvfs(
- xfs_inode_t *ip,
+ struct xfs_inode *ip,
struct kstatfs *statp)
{
- xfs_mount_t *mp = ip->i_mount;
- xfs_dquot_t *dqp;
+ struct xfs_mount *mp = ip->i_mount;
+ struct xfs_dquot *dqp;
if (!xfs_qm_dqget(mp, xfs_get_projid(ip), XFS_DQ_PROJ, false, &dqp)) {
xfs_fill_statvfs_from_dquot(statp, dqp);
diff --git a/fs/xfs/xfs_trans_dquot.c b/fs/xfs/xfs_trans_dquot.c
index 16457465833b..0b7f6f228662 100644
--- a/fs/xfs/xfs_trans_dquot.c
+++ b/fs/xfs/xfs_trans_dquot.c
@@ -25,8 +25,8 @@ STATIC void xfs_trans_alloc_dqinfo(xfs_trans_t *);
*/
void
xfs_trans_dqjoin(
- xfs_trans_t *tp,
- xfs_dquot_t *dqp)
+ struct xfs_trans *tp,
+ struct xfs_dquot *dqp)
{
ASSERT(XFS_DQ_IS_LOCKED(dqp));
ASSERT(dqp->q_logitem.qli_dquot == dqp);
@@ -49,8 +49,8 @@ xfs_trans_dqjoin(
*/
void
xfs_trans_log_dquot(
- xfs_trans_t *tp,
- xfs_dquot_t *dqp)
+ struct xfs_trans *tp,
+ struct xfs_dquot *dqp)
{
ASSERT(XFS_DQ_IS_LOCKED(dqp));
@@ -486,12 +486,12 @@ xfs_trans_apply_dquot_deltas(
*/
void
xfs_trans_unreserve_and_mod_dquots(
- xfs_trans_t *tp)
+ struct xfs_trans *tp)
{
int i, j;
- xfs_dquot_t *dqp;
+ struct xfs_dquot *dqp;
struct xfs_dqtrx *qtrx, *qa;
- bool locked;
+ bool locked;
if (!tp->t_dqinfo || !(tp->t_flags & XFS_TRANS_DQ_DIRTY))
return;
@@ -571,21 +571,21 @@ xfs_quota_warn(
*/
STATIC int
xfs_trans_dqresv(
- xfs_trans_t *tp,
- xfs_mount_t *mp,
- xfs_dquot_t *dqp,
- int64_t nblks,
- long ninos,
- uint flags)
+ struct xfs_trans *tp,
+ struct xfs_mount *mp,
+ struct xfs_dquot *dqp,
+ int64_t nblks,
+ long ninos,
+ uint flags)
{
- xfs_qcnt_t hardlimit;
- xfs_qcnt_t softlimit;
- time_t timer;
- xfs_qwarncnt_t warns;
- xfs_qwarncnt_t warnlimit;
- xfs_qcnt_t total_count;
- xfs_qcnt_t *resbcountp;
- xfs_quotainfo_t *q = mp->m_quotainfo;
+ xfs_qcnt_t hardlimit;
+ xfs_qcnt_t softlimit;
+ time_t timer;
+ xfs_qwarncnt_t warns;
+ xfs_qwarncnt_t warnlimit;
+ xfs_qcnt_t total_count;
+ xfs_qcnt_t *resbcountp;
+ xfs_quotainfo_t *q = mp->m_quotainfo;
struct xfs_def_quota *defq;
--
2.23.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH v4 2/5] xfs: remove the xfs_quotainfo_t typedef
2019-11-12 21:33 [PATCH v4 0/5] xfs: remove several typedefs in quota code Pavel Reichl
2019-11-12 21:33 ` [PATCH v4 1/5] xfs: remove the xfs_disk_dquot_t and xfs_dquot_t Pavel Reichl
@ 2019-11-12 21:33 ` Pavel Reichl
2019-11-13 4:44 ` Darrick J. Wong
2019-11-12 21:33 ` [PATCH v4 3/5] xfs: remove the xfs_dq_logitem_t typedef Pavel Reichl
` (3 subsequent siblings)
5 siblings, 1 reply; 21+ messages in thread
From: Pavel Reichl @ 2019-11-12 21:33 UTC (permalink / raw)
To: linux-xfs; +Cc: Pavel Reichl, Dave Chinner
Signed-off-by: Pavel Reichl <preichl@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
---
fs/xfs/xfs_qm.c | 20 ++++++++++----------
fs/xfs/xfs_qm.h | 6 +++---
fs/xfs/xfs_trans_dquot.c | 2 +-
3 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/fs/xfs/xfs_qm.c b/fs/xfs/xfs_qm.c
index 035930a4f0dd..64a944296fda 100644
--- a/fs/xfs/xfs_qm.c
+++ b/fs/xfs/xfs_qm.c
@@ -30,10 +30,10 @@
* quota functionality, including maintaining the freelist and hash
* tables of dquots.
*/
-STATIC int xfs_qm_init_quotainos(xfs_mount_t *);
-STATIC int xfs_qm_init_quotainfo(xfs_mount_t *);
+STATIC int xfs_qm_init_quotainos(struct xfs_mount *mp);
+STATIC int xfs_qm_init_quotainfo(struct xfs_mount *mp);
-STATIC void xfs_qm_destroy_quotainos(xfs_quotainfo_t *qi);
+STATIC void xfs_qm_destroy_quotainos(struct xfs_quotainfo *qi);
STATIC void xfs_qm_dqfree_one(struct xfs_dquot *dqp);
/*
* We use the batch lookup interface to iterate over the dquots as it
@@ -540,9 +540,9 @@ xfs_qm_shrink_count(
STATIC void
xfs_qm_set_defquota(
- xfs_mount_t *mp,
- uint type,
- xfs_quotainfo_t *qinf)
+ struct xfs_mount *mp,
+ uint type,
+ struct xfs_quotainfo *qinf)
{
struct xfs_dquot *dqp;
struct xfs_def_quota *defq;
@@ -643,7 +643,7 @@ xfs_qm_init_quotainfo(
ASSERT(XFS_IS_QUOTA_RUNNING(mp));
- qinf = mp->m_quotainfo = kmem_zalloc(sizeof(xfs_quotainfo_t), 0);
+ qinf = mp->m_quotainfo = kmem_zalloc(sizeof(struct xfs_quotainfo), 0);
error = list_lru_init(&qinf->qi_lru);
if (error)
@@ -710,9 +710,9 @@ xfs_qm_init_quotainfo(
*/
void
xfs_qm_destroy_quotainfo(
- xfs_mount_t *mp)
+ struct xfs_mount *mp)
{
- xfs_quotainfo_t *qi;
+ struct xfs_quotainfo *qi;
qi = mp->m_quotainfo;
ASSERT(qi != NULL);
@@ -1568,7 +1568,7 @@ xfs_qm_init_quotainos(
STATIC void
xfs_qm_destroy_quotainos(
- xfs_quotainfo_t *qi)
+ struct xfs_quotainfo *qi)
{
if (qi->qi_uquotaip) {
xfs_irele(qi->qi_uquotaip);
diff --git a/fs/xfs/xfs_qm.h b/fs/xfs/xfs_qm.h
index b41b75089548..7823af39008b 100644
--- a/fs/xfs/xfs_qm.h
+++ b/fs/xfs/xfs_qm.h
@@ -54,7 +54,7 @@ struct xfs_def_quota {
* Various quota information for individual filesystems.
* The mount structure keeps a pointer to this.
*/
-typedef struct xfs_quotainfo {
+struct xfs_quotainfo {
struct radix_tree_root qi_uquota_tree;
struct radix_tree_root qi_gquota_tree;
struct radix_tree_root qi_pquota_tree;
@@ -76,8 +76,8 @@ typedef struct xfs_quotainfo {
struct xfs_def_quota qi_usr_default;
struct xfs_def_quota qi_grp_default;
struct xfs_def_quota qi_prj_default;
- struct shrinker qi_shrinker;
-} xfs_quotainfo_t;
+ struct shrinker qi_shrinker;
+};
static inline struct radix_tree_root *
xfs_dquot_tree(
diff --git a/fs/xfs/xfs_trans_dquot.c b/fs/xfs/xfs_trans_dquot.c
index 0b7f6f228662..d319347093d6 100644
--- a/fs/xfs/xfs_trans_dquot.c
+++ b/fs/xfs/xfs_trans_dquot.c
@@ -585,7 +585,7 @@ xfs_trans_dqresv(
xfs_qwarncnt_t warnlimit;
xfs_qcnt_t total_count;
xfs_qcnt_t *resbcountp;
- xfs_quotainfo_t *q = mp->m_quotainfo;
+ struct xfs_quotainfo *q = mp->m_quotainfo;
struct xfs_def_quota *defq;
--
2.23.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH v4 3/5] xfs: remove the xfs_dq_logitem_t typedef
2019-11-12 21:33 [PATCH v4 0/5] xfs: remove several typedefs in quota code Pavel Reichl
2019-11-12 21:33 ` [PATCH v4 1/5] xfs: remove the xfs_disk_dquot_t and xfs_dquot_t Pavel Reichl
2019-11-12 21:33 ` [PATCH v4 2/5] xfs: remove the xfs_quotainfo_t typedef Pavel Reichl
@ 2019-11-12 21:33 ` Pavel Reichl
2019-11-13 4:44 ` Darrick J. Wong
2019-11-14 1:30 ` Dave Chinner
2019-11-12 21:33 ` [PATCH v4 4/5] xfs: remove the xfs_qoff_logitem_t typedef Pavel Reichl
` (2 subsequent siblings)
5 siblings, 2 replies; 21+ messages in thread
From: Pavel Reichl @ 2019-11-12 21:33 UTC (permalink / raw)
To: linux-xfs; +Cc: Pavel Reichl
Signed-off-by: Pavel Reichl <preichl@redhat.com>
---
fs/xfs/xfs_dquot.c | 2 +-
fs/xfs/xfs_dquot.h | 2 +-
fs/xfs/xfs_dquot_item.h | 10 +++++-----
3 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/fs/xfs/xfs_dquot.c b/fs/xfs/xfs_dquot.c
index 5b089afd7087..4df8ffb9906f 100644
--- a/fs/xfs/xfs_dquot.c
+++ b/fs/xfs/xfs_dquot.c
@@ -1018,7 +1018,7 @@ xfs_qm_dqflush_done(
struct xfs_buf *bp,
struct xfs_log_item *lip)
{
- xfs_dq_logitem_t *qip = (struct xfs_dq_logitem *)lip;
+ struct xfs_dq_logitem *qip = (struct xfs_dq_logitem *)lip;
struct xfs_dquot *dqp = qip->qli_dquot;
struct xfs_ail *ailp = lip->li_ailp;
diff --git a/fs/xfs/xfs_dquot.h b/fs/xfs/xfs_dquot.h
index 831e4270cf65..fe3e46df604b 100644
--- a/fs/xfs/xfs_dquot.h
+++ b/fs/xfs/xfs_dquot.h
@@ -40,7 +40,7 @@ struct xfs_dquot {
xfs_fileoff_t q_fileoffset;
struct xfs_disk_dquot q_core;
- xfs_dq_logitem_t q_logitem;
+ struct xfs_dq_logitem q_logitem;
/* total regular nblks used+reserved */
xfs_qcnt_t q_res_bcount;
/* total inos allocd+reserved */
diff --git a/fs/xfs/xfs_dquot_item.h b/fs/xfs/xfs_dquot_item.h
index 1aed34ccdabc..3a64a7fd3b8a 100644
--- a/fs/xfs/xfs_dquot_item.h
+++ b/fs/xfs/xfs_dquot_item.h
@@ -11,11 +11,11 @@ struct xfs_trans;
struct xfs_mount;
struct xfs_qoff_logitem;
-typedef struct xfs_dq_logitem {
- struct xfs_log_item qli_item; /* common portion */
- struct xfs_dquot *qli_dquot; /* dquot ptr */
- xfs_lsn_t qli_flush_lsn; /* lsn at last flush */
-} xfs_dq_logitem_t;
+struct xfs_dq_logitem {
+ struct xfs_log_item qli_item; /* common portion */
+ struct xfs_dquot *qli_dquot; /* dquot ptr */
+ xfs_lsn_t qli_flush_lsn; /* lsn at last flush */
+};
typedef struct xfs_qoff_logitem {
struct xfs_log_item qql_item; /* common portion */
--
2.23.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH v4 4/5] xfs: remove the xfs_qoff_logitem_t typedef
2019-11-12 21:33 [PATCH v4 0/5] xfs: remove several typedefs in quota code Pavel Reichl
` (2 preceding siblings ...)
2019-11-12 21:33 ` [PATCH v4 3/5] xfs: remove the xfs_dq_logitem_t typedef Pavel Reichl
@ 2019-11-12 21:33 ` Pavel Reichl
2019-11-13 4:44 ` Darrick J. Wong
2019-11-14 1:38 ` Dave Chinner
2019-11-12 21:33 ` [PATCH v4 5/5] Replace function declartion by actual definition Pavel Reichl
2019-11-14 1:28 ` [PATCH v4 0/5] xfs: remove several typedefs in quota code Dave Chinner
5 siblings, 2 replies; 21+ messages in thread
From: Pavel Reichl @ 2019-11-12 21:33 UTC (permalink / raw)
To: linux-xfs; +Cc: Pavel Reichl
Signed-off-by: Pavel Reichl <preichl@redhat.com>
---
fs/xfs/libxfs/xfs_trans_resv.c | 5 ++---
fs/xfs/xfs_dquot_item.h | 28 +++++++++++++++-------------
fs/xfs/xfs_qm_syscalls.c | 29 ++++++++++++++++-------------
fs/xfs/xfs_trans_dquot.c | 12 ++++++------
4 files changed, 39 insertions(+), 35 deletions(-)
diff --git a/fs/xfs/libxfs/xfs_trans_resv.c b/fs/xfs/libxfs/xfs_trans_resv.c
index 271cca13565b..da6642488177 100644
--- a/fs/xfs/libxfs/xfs_trans_resv.c
+++ b/fs/xfs/libxfs/xfs_trans_resv.c
@@ -741,8 +741,7 @@ xfs_calc_qm_dqalloc_reservation(
/*
* Turning off quotas.
- * the xfs_qoff_logitem_t: sizeof(struct xfs_qoff_logitem) * 2
- * the superblock for the quota flags: sector size
+ * the quota off logitems: sizeof(struct xfs_qoff_logitem) * 2
*/
STATIC uint
xfs_calc_qm_quotaoff_reservation(
@@ -754,7 +753,7 @@ xfs_calc_qm_quotaoff_reservation(
/*
* End of turning off quotas.
- * the xfs_qoff_logitem_t: sizeof(struct xfs_qoff_logitem) * 2
+ * the quota off logitems: sizeof(struct xfs_qoff_logitem) * 2
*/
STATIC uint
xfs_calc_qm_quotaoff_end_reservation(void)
diff --git a/fs/xfs/xfs_dquot_item.h b/fs/xfs/xfs_dquot_item.h
index 3a64a7fd3b8a..3bb19e556ade 100644
--- a/fs/xfs/xfs_dquot_item.h
+++ b/fs/xfs/xfs_dquot_item.h
@@ -12,24 +12,26 @@ struct xfs_mount;
struct xfs_qoff_logitem;
struct xfs_dq_logitem {
- struct xfs_log_item qli_item; /* common portion */
+ struct xfs_log_item qli_item; /* common portion */
struct xfs_dquot *qli_dquot; /* dquot ptr */
- xfs_lsn_t qli_flush_lsn; /* lsn at last flush */
+ xfs_lsn_t qli_flush_lsn; /* lsn at last flush */
};
-typedef struct xfs_qoff_logitem {
- struct xfs_log_item qql_item; /* common portion */
- struct xfs_qoff_logitem *qql_start_lip; /* qoff-start logitem, if any */
+struct xfs_qoff_logitem {
+ struct xfs_log_item qql_item; /* common portion */
+ struct xfs_qoff_logitem *qql_start_lip; /* qoff-start logitem, if any */
unsigned int qql_flags;
-} xfs_qoff_logitem_t;
+};
-extern void xfs_qm_dquot_logitem_init(struct xfs_dquot *);
-extern xfs_qoff_logitem_t *xfs_qm_qoff_logitem_init(struct xfs_mount *,
- struct xfs_qoff_logitem *, uint);
-extern xfs_qoff_logitem_t *xfs_trans_get_qoff_item(struct xfs_trans *,
- struct xfs_qoff_logitem *, uint);
-extern void xfs_trans_log_quotaoff_item(struct xfs_trans *,
- struct xfs_qoff_logitem *);
+void xfs_qm_dquot_logitem_init(struct xfs_dquot *dqp);
+struct xfs_qoff_logitem *xfs_qm_qoff_logitem_init(struct xfs_mount *mp,
+ struct xfs_qoff_logitem *start,
+ uint flags);
+struct xfs_qoff_logitem *xfs_trans_get_qoff_item(struct xfs_trans *tp,
+ struct xfs_qoff_logitem *startqoff,
+ uint flags);
+void xfs_trans_log_quotaoff_item(struct xfs_trans *tp,
+ struct xfs_qoff_logitem *qlp);
#endif /* __XFS_DQUOT_ITEM_H__ */
diff --git a/fs/xfs/xfs_qm_syscalls.c b/fs/xfs/xfs_qm_syscalls.c
index da7ad0383037..e685b9ae90b9 100644
--- a/fs/xfs/xfs_qm_syscalls.c
+++ b/fs/xfs/xfs_qm_syscalls.c
@@ -19,9 +19,12 @@
#include "xfs_qm.h"
#include "xfs_icache.h"
-STATIC int xfs_qm_log_quotaoff(xfs_mount_t *, xfs_qoff_logitem_t **, uint);
-STATIC int xfs_qm_log_quotaoff_end(xfs_mount_t *, xfs_qoff_logitem_t *,
- uint);
+STATIC int xfs_qm_log_quotaoff(struct xfs_mount *mp,
+ struct xfs_qoff_logitem **qoffstartp,
+ uint flags);
+STATIC int xfs_qm_log_quotaoff_end(struct xfs_mount *mp,
+ struct xfs_qoff_logitem *startqoff,
+ uint flags);
/*
* Turn off quota accounting and/or enforcement for all udquots and/or
@@ -40,7 +43,7 @@ xfs_qm_scall_quotaoff(
uint dqtype;
int error;
uint inactivate_flags;
- xfs_qoff_logitem_t *qoffstart;
+ struct xfs_qoff_logitem *qoffstart;
/*
* No file system can have quotas enabled on disk but not in core.
@@ -540,13 +543,13 @@ xfs_qm_scall_setqlim(
STATIC int
xfs_qm_log_quotaoff_end(
- xfs_mount_t *mp,
- xfs_qoff_logitem_t *startqoff,
+ struct xfs_mount *mp,
+ struct xfs_qoff_logitem *startqoff,
uint flags)
{
- xfs_trans_t *tp;
+ struct xfs_trans *tp;
int error;
- xfs_qoff_logitem_t *qoffi;
+ struct xfs_qoff_logitem *qoffi;
error = xfs_trans_alloc(mp, &M_RES(mp)->tr_qm_equotaoff, 0, 0, 0, &tp);
if (error)
@@ -568,13 +571,13 @@ xfs_qm_log_quotaoff_end(
STATIC int
xfs_qm_log_quotaoff(
- xfs_mount_t *mp,
- xfs_qoff_logitem_t **qoffstartp,
- uint flags)
+ struct xfs_mount *mp,
+ struct xfs_qoff_logitem **qoffstartp,
+ uint flags)
{
- xfs_trans_t *tp;
+ struct xfs_trans *tp;
int error;
- xfs_qoff_logitem_t *qoffi;
+ struct xfs_qoff_logitem *qoffi;
*qoffstartp = NULL;
diff --git a/fs/xfs/xfs_trans_dquot.c b/fs/xfs/xfs_trans_dquot.c
index d319347093d6..454fc83c588a 100644
--- a/fs/xfs/xfs_trans_dquot.c
+++ b/fs/xfs/xfs_trans_dquot.c
@@ -824,13 +824,13 @@ xfs_trans_reserve_quota_nblks(
/*
* This routine is called to allocate a quotaoff log item.
*/
-xfs_qoff_logitem_t *
+struct xfs_qoff_logitem *
xfs_trans_get_qoff_item(
- xfs_trans_t *tp,
- xfs_qoff_logitem_t *startqoff,
+ struct xfs_trans *tp,
+ struct xfs_qoff_logitem *startqoff,
uint flags)
{
- xfs_qoff_logitem_t *q;
+ struct xfs_qoff_logitem *q;
ASSERT(tp != NULL);
@@ -852,8 +852,8 @@ xfs_trans_get_qoff_item(
*/
void
xfs_trans_log_quotaoff_item(
- xfs_trans_t *tp,
- xfs_qoff_logitem_t *qlp)
+ struct xfs_trans *tp,
+ struct xfs_qoff_logitem *qlp)
{
tp->t_flags |= XFS_TRANS_DIRTY;
set_bit(XFS_LI_DIRTY, &qlp->qql_item.li_flags);
--
2.23.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH v4 5/5] Replace function declartion by actual definition
2019-11-12 21:33 [PATCH v4 0/5] xfs: remove several typedefs in quota code Pavel Reichl
` (3 preceding siblings ...)
2019-11-12 21:33 ` [PATCH v4 4/5] xfs: remove the xfs_qoff_logitem_t typedef Pavel Reichl
@ 2019-11-12 21:33 ` Pavel Reichl
2019-11-13 4:43 ` Darrick J. Wong
2019-11-14 1:40 ` Dave Chinner
2019-11-14 1:28 ` [PATCH v4 0/5] xfs: remove several typedefs in quota code Dave Chinner
5 siblings, 2 replies; 21+ messages in thread
From: Pavel Reichl @ 2019-11-12 21:33 UTC (permalink / raw)
To: linux-xfs; +Cc: Pavel Reichl
Signed-off-by: Pavel Reichl <preichl@redhat.com>
---
fs/xfs/xfs_qm_syscalls.c | 140 ++++++++++++++++++---------------------
1 file changed, 66 insertions(+), 74 deletions(-)
diff --git a/fs/xfs/xfs_qm_syscalls.c b/fs/xfs/xfs_qm_syscalls.c
index e685b9ae90b9..1ea82764bf89 100644
--- a/fs/xfs/xfs_qm_syscalls.c
+++ b/fs/xfs/xfs_qm_syscalls.c
@@ -19,12 +19,72 @@
#include "xfs_qm.h"
#include "xfs_icache.h"
-STATIC int xfs_qm_log_quotaoff(struct xfs_mount *mp,
- struct xfs_qoff_logitem **qoffstartp,
- uint flags);
-STATIC int xfs_qm_log_quotaoff_end(struct xfs_mount *mp,
- struct xfs_qoff_logitem *startqoff,
- uint flags);
+STATIC int
+xfs_qm_log_quotaoff(
+ struct xfs_mount *mp,
+ struct xfs_qoff_logitem **qoffstartp,
+ uint flags)
+{
+ struct xfs_trans *tp;
+ int error;
+ struct xfs_qoff_logitem *qoffi;
+
+ *qoffstartp = NULL;
+
+ error = xfs_trans_alloc(mp, &M_RES(mp)->tr_qm_quotaoff, 0, 0, 0, &tp);
+ if (error)
+ goto out;
+
+ qoffi = xfs_trans_get_qoff_item(tp, NULL, flags & XFS_ALL_QUOTA_ACCT);
+ xfs_trans_log_quotaoff_item(tp, qoffi);
+
+ spin_lock(&mp->m_sb_lock);
+ mp->m_sb.sb_qflags = (mp->m_qflags & ~(flags)) & XFS_MOUNT_QUOTA_ALL;
+ spin_unlock(&mp->m_sb_lock);
+
+ xfs_log_sb(tp);
+
+ /*
+ * We have to make sure that the transaction is secure on disk before we
+ * return and actually stop quota accounting. So, make it synchronous.
+ * We don't care about quotoff's performance.
+ */
+ xfs_trans_set_sync(tp);
+ error = xfs_trans_commit(tp);
+ if (error)
+ goto out;
+
+ *qoffstartp = qoffi;
+out:
+ return error;
+}
+
+STATIC int
+xfs_qm_log_quotaoff_end(
+ struct xfs_mount *mp,
+ struct xfs_qoff_logitem *startqoff,
+ uint flags)
+{
+ struct xfs_trans *tp;
+ int error;
+ struct xfs_qoff_logitem *qoffi;
+
+ error = xfs_trans_alloc(mp, &M_RES(mp)->tr_qm_equotaoff, 0, 0, 0, &tp);
+ if (error)
+ return error;
+
+ qoffi = xfs_trans_get_qoff_item(tp, startqoff,
+ flags & XFS_ALL_QUOTA_ACCT);
+ xfs_trans_log_quotaoff_item(tp, qoffi);
+
+ /*
+ * We have to make sure that the transaction is secure on disk before we
+ * return and actually stop quota accounting. So, make it synchronous.
+ * We don't care about quotoff's performance.
+ */
+ xfs_trans_set_sync(tp);
+ return xfs_trans_commit(tp);
+}
/*
* Turn off quota accounting and/or enforcement for all udquots and/or
@@ -541,74 +601,6 @@ xfs_qm_scall_setqlim(
return error;
}
-STATIC int
-xfs_qm_log_quotaoff_end(
- struct xfs_mount *mp,
- struct xfs_qoff_logitem *startqoff,
- uint flags)
-{
- struct xfs_trans *tp;
- int error;
- struct xfs_qoff_logitem *qoffi;
-
- error = xfs_trans_alloc(mp, &M_RES(mp)->tr_qm_equotaoff, 0, 0, 0, &tp);
- if (error)
- return error;
-
- qoffi = xfs_trans_get_qoff_item(tp, startqoff,
- flags & XFS_ALL_QUOTA_ACCT);
- xfs_trans_log_quotaoff_item(tp, qoffi);
-
- /*
- * We have to make sure that the transaction is secure on disk before we
- * return and actually stop quota accounting. So, make it synchronous.
- * We don't care about quotoff's performance.
- */
- xfs_trans_set_sync(tp);
- return xfs_trans_commit(tp);
-}
-
-
-STATIC int
-xfs_qm_log_quotaoff(
- struct xfs_mount *mp,
- struct xfs_qoff_logitem **qoffstartp,
- uint flags)
-{
- struct xfs_trans *tp;
- int error;
- struct xfs_qoff_logitem *qoffi;
-
- *qoffstartp = NULL;
-
- error = xfs_trans_alloc(mp, &M_RES(mp)->tr_qm_quotaoff, 0, 0, 0, &tp);
- if (error)
- goto out;
-
- qoffi = xfs_trans_get_qoff_item(tp, NULL, flags & XFS_ALL_QUOTA_ACCT);
- xfs_trans_log_quotaoff_item(tp, qoffi);
-
- spin_lock(&mp->m_sb_lock);
- mp->m_sb.sb_qflags = (mp->m_qflags & ~(flags)) & XFS_MOUNT_QUOTA_ALL;
- spin_unlock(&mp->m_sb_lock);
-
- xfs_log_sb(tp);
-
- /*
- * We have to make sure that the transaction is secure on disk before we
- * return and actually stop quota accounting. So, make it synchronous.
- * We don't care about quotoff's performance.
- */
- xfs_trans_set_sync(tp);
- error = xfs_trans_commit(tp);
- if (error)
- goto out;
-
- *qoffstartp = qoffi;
-out:
- return error;
-}
-
/* Fill out the quota context. */
static void
xfs_qm_scall_getquota_fill_qc(
--
2.23.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PATCH v4 5/5] Replace function declartion by actual definition
2019-11-12 21:33 ` [PATCH v4 5/5] Replace function declartion by actual definition Pavel Reichl
@ 2019-11-13 4:43 ` Darrick J. Wong
2019-11-14 1:40 ` Dave Chinner
1 sibling, 0 replies; 21+ messages in thread
From: Darrick J. Wong @ 2019-11-13 4:43 UTC (permalink / raw)
To: Pavel Reichl; +Cc: linux-xfs
On Tue, Nov 12, 2019 at 10:33:10PM +0100, Pavel Reichl wrote:
The subject line is missing the usual 'xfs:'
OTOH this looks like a simple enough code move that I'll just fix it on
the way in.
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
--D
> Signed-off-by: Pavel Reichl <preichl@redhat.com>
> ---
> fs/xfs/xfs_qm_syscalls.c | 140 ++++++++++++++++++---------------------
> 1 file changed, 66 insertions(+), 74 deletions(-)
>
> diff --git a/fs/xfs/xfs_qm_syscalls.c b/fs/xfs/xfs_qm_syscalls.c
> index e685b9ae90b9..1ea82764bf89 100644
> --- a/fs/xfs/xfs_qm_syscalls.c
> +++ b/fs/xfs/xfs_qm_syscalls.c
> @@ -19,12 +19,72 @@
> #include "xfs_qm.h"
> #include "xfs_icache.h"
>
> -STATIC int xfs_qm_log_quotaoff(struct xfs_mount *mp,
> - struct xfs_qoff_logitem **qoffstartp,
> - uint flags);
> -STATIC int xfs_qm_log_quotaoff_end(struct xfs_mount *mp,
> - struct xfs_qoff_logitem *startqoff,
> - uint flags);
> +STATIC int
> +xfs_qm_log_quotaoff(
> + struct xfs_mount *mp,
> + struct xfs_qoff_logitem **qoffstartp,
> + uint flags)
> +{
> + struct xfs_trans *tp;
> + int error;
> + struct xfs_qoff_logitem *qoffi;
> +
> + *qoffstartp = NULL;
> +
> + error = xfs_trans_alloc(mp, &M_RES(mp)->tr_qm_quotaoff, 0, 0, 0, &tp);
> + if (error)
> + goto out;
> +
> + qoffi = xfs_trans_get_qoff_item(tp, NULL, flags & XFS_ALL_QUOTA_ACCT);
> + xfs_trans_log_quotaoff_item(tp, qoffi);
> +
> + spin_lock(&mp->m_sb_lock);
> + mp->m_sb.sb_qflags = (mp->m_qflags & ~(flags)) & XFS_MOUNT_QUOTA_ALL;
> + spin_unlock(&mp->m_sb_lock);
> +
> + xfs_log_sb(tp);
> +
> + /*
> + * We have to make sure that the transaction is secure on disk before we
> + * return and actually stop quota accounting. So, make it synchronous.
> + * We don't care about quotoff's performance.
> + */
> + xfs_trans_set_sync(tp);
> + error = xfs_trans_commit(tp);
> + if (error)
> + goto out;
> +
> + *qoffstartp = qoffi;
> +out:
> + return error;
> +}
> +
> +STATIC int
> +xfs_qm_log_quotaoff_end(
> + struct xfs_mount *mp,
> + struct xfs_qoff_logitem *startqoff,
> + uint flags)
> +{
> + struct xfs_trans *tp;
> + int error;
> + struct xfs_qoff_logitem *qoffi;
> +
> + error = xfs_trans_alloc(mp, &M_RES(mp)->tr_qm_equotaoff, 0, 0, 0, &tp);
> + if (error)
> + return error;
> +
> + qoffi = xfs_trans_get_qoff_item(tp, startqoff,
> + flags & XFS_ALL_QUOTA_ACCT);
> + xfs_trans_log_quotaoff_item(tp, qoffi);
> +
> + /*
> + * We have to make sure that the transaction is secure on disk before we
> + * return and actually stop quota accounting. So, make it synchronous.
> + * We don't care about quotoff's performance.
> + */
> + xfs_trans_set_sync(tp);
> + return xfs_trans_commit(tp);
> +}
>
> /*
> * Turn off quota accounting and/or enforcement for all udquots and/or
> @@ -541,74 +601,6 @@ xfs_qm_scall_setqlim(
> return error;
> }
>
> -STATIC int
> -xfs_qm_log_quotaoff_end(
> - struct xfs_mount *mp,
> - struct xfs_qoff_logitem *startqoff,
> - uint flags)
> -{
> - struct xfs_trans *tp;
> - int error;
> - struct xfs_qoff_logitem *qoffi;
> -
> - error = xfs_trans_alloc(mp, &M_RES(mp)->tr_qm_equotaoff, 0, 0, 0, &tp);
> - if (error)
> - return error;
> -
> - qoffi = xfs_trans_get_qoff_item(tp, startqoff,
> - flags & XFS_ALL_QUOTA_ACCT);
> - xfs_trans_log_quotaoff_item(tp, qoffi);
> -
> - /*
> - * We have to make sure that the transaction is secure on disk before we
> - * return and actually stop quota accounting. So, make it synchronous.
> - * We don't care about quotoff's performance.
> - */
> - xfs_trans_set_sync(tp);
> - return xfs_trans_commit(tp);
> -}
> -
> -
> -STATIC int
> -xfs_qm_log_quotaoff(
> - struct xfs_mount *mp,
> - struct xfs_qoff_logitem **qoffstartp,
> - uint flags)
> -{
> - struct xfs_trans *tp;
> - int error;
> - struct xfs_qoff_logitem *qoffi;
> -
> - *qoffstartp = NULL;
> -
> - error = xfs_trans_alloc(mp, &M_RES(mp)->tr_qm_quotaoff, 0, 0, 0, &tp);
> - if (error)
> - goto out;
> -
> - qoffi = xfs_trans_get_qoff_item(tp, NULL, flags & XFS_ALL_QUOTA_ACCT);
> - xfs_trans_log_quotaoff_item(tp, qoffi);
> -
> - spin_lock(&mp->m_sb_lock);
> - mp->m_sb.sb_qflags = (mp->m_qflags & ~(flags)) & XFS_MOUNT_QUOTA_ALL;
> - spin_unlock(&mp->m_sb_lock);
> -
> - xfs_log_sb(tp);
> -
> - /*
> - * We have to make sure that the transaction is secure on disk before we
> - * return and actually stop quota accounting. So, make it synchronous.
> - * We don't care about quotoff's performance.
> - */
> - xfs_trans_set_sync(tp);
> - error = xfs_trans_commit(tp);
> - if (error)
> - goto out;
> -
> - *qoffstartp = qoffi;
> -out:
> - return error;
> -}
> -
> /* Fill out the quota context. */
> static void
> xfs_qm_scall_getquota_fill_qc(
> --
> 2.23.0
>
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH v4 4/5] xfs: remove the xfs_qoff_logitem_t typedef
2019-11-12 21:33 ` [PATCH v4 4/5] xfs: remove the xfs_qoff_logitem_t typedef Pavel Reichl
@ 2019-11-13 4:44 ` Darrick J. Wong
2019-11-14 1:38 ` Dave Chinner
1 sibling, 0 replies; 21+ messages in thread
From: Darrick J. Wong @ 2019-11-13 4:44 UTC (permalink / raw)
To: Pavel Reichl; +Cc: linux-xfs
On Tue, Nov 12, 2019 at 10:33:09PM +0100, Pavel Reichl wrote:
> Signed-off-by: Pavel Reichl <preichl@redhat.com>
Looks ok,
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
--D
> ---
> fs/xfs/libxfs/xfs_trans_resv.c | 5 ++---
> fs/xfs/xfs_dquot_item.h | 28 +++++++++++++++-------------
> fs/xfs/xfs_qm_syscalls.c | 29 ++++++++++++++++-------------
> fs/xfs/xfs_trans_dquot.c | 12 ++++++------
> 4 files changed, 39 insertions(+), 35 deletions(-)
>
> diff --git a/fs/xfs/libxfs/xfs_trans_resv.c b/fs/xfs/libxfs/xfs_trans_resv.c
> index 271cca13565b..da6642488177 100644
> --- a/fs/xfs/libxfs/xfs_trans_resv.c
> +++ b/fs/xfs/libxfs/xfs_trans_resv.c
> @@ -741,8 +741,7 @@ xfs_calc_qm_dqalloc_reservation(
>
> /*
> * Turning off quotas.
> - * the xfs_qoff_logitem_t: sizeof(struct xfs_qoff_logitem) * 2
> - * the superblock for the quota flags: sector size
> + * the quota off logitems: sizeof(struct xfs_qoff_logitem) * 2
> */
> STATIC uint
> xfs_calc_qm_quotaoff_reservation(
> @@ -754,7 +753,7 @@ xfs_calc_qm_quotaoff_reservation(
>
> /*
> * End of turning off quotas.
> - * the xfs_qoff_logitem_t: sizeof(struct xfs_qoff_logitem) * 2
> + * the quota off logitems: sizeof(struct xfs_qoff_logitem) * 2
> */
> STATIC uint
> xfs_calc_qm_quotaoff_end_reservation(void)
> diff --git a/fs/xfs/xfs_dquot_item.h b/fs/xfs/xfs_dquot_item.h
> index 3a64a7fd3b8a..3bb19e556ade 100644
> --- a/fs/xfs/xfs_dquot_item.h
> +++ b/fs/xfs/xfs_dquot_item.h
> @@ -12,24 +12,26 @@ struct xfs_mount;
> struct xfs_qoff_logitem;
>
> struct xfs_dq_logitem {
> - struct xfs_log_item qli_item; /* common portion */
> + struct xfs_log_item qli_item; /* common portion */
> struct xfs_dquot *qli_dquot; /* dquot ptr */
> - xfs_lsn_t qli_flush_lsn; /* lsn at last flush */
> + xfs_lsn_t qli_flush_lsn; /* lsn at last flush */
> };
>
> -typedef struct xfs_qoff_logitem {
> - struct xfs_log_item qql_item; /* common portion */
> - struct xfs_qoff_logitem *qql_start_lip; /* qoff-start logitem, if any */
> +struct xfs_qoff_logitem {
> + struct xfs_log_item qql_item; /* common portion */
> + struct xfs_qoff_logitem *qql_start_lip; /* qoff-start logitem, if any */
> unsigned int qql_flags;
> -} xfs_qoff_logitem_t;
> +};
>
>
> -extern void xfs_qm_dquot_logitem_init(struct xfs_dquot *);
> -extern xfs_qoff_logitem_t *xfs_qm_qoff_logitem_init(struct xfs_mount *,
> - struct xfs_qoff_logitem *, uint);
> -extern xfs_qoff_logitem_t *xfs_trans_get_qoff_item(struct xfs_trans *,
> - struct xfs_qoff_logitem *, uint);
> -extern void xfs_trans_log_quotaoff_item(struct xfs_trans *,
> - struct xfs_qoff_logitem *);
> +void xfs_qm_dquot_logitem_init(struct xfs_dquot *dqp);
> +struct xfs_qoff_logitem *xfs_qm_qoff_logitem_init(struct xfs_mount *mp,
> + struct xfs_qoff_logitem *start,
> + uint flags);
> +struct xfs_qoff_logitem *xfs_trans_get_qoff_item(struct xfs_trans *tp,
> + struct xfs_qoff_logitem *startqoff,
> + uint flags);
> +void xfs_trans_log_quotaoff_item(struct xfs_trans *tp,
> + struct xfs_qoff_logitem *qlp);
>
> #endif /* __XFS_DQUOT_ITEM_H__ */
> diff --git a/fs/xfs/xfs_qm_syscalls.c b/fs/xfs/xfs_qm_syscalls.c
> index da7ad0383037..e685b9ae90b9 100644
> --- a/fs/xfs/xfs_qm_syscalls.c
> +++ b/fs/xfs/xfs_qm_syscalls.c
> @@ -19,9 +19,12 @@
> #include "xfs_qm.h"
> #include "xfs_icache.h"
>
> -STATIC int xfs_qm_log_quotaoff(xfs_mount_t *, xfs_qoff_logitem_t **, uint);
> -STATIC int xfs_qm_log_quotaoff_end(xfs_mount_t *, xfs_qoff_logitem_t *,
> - uint);
> +STATIC int xfs_qm_log_quotaoff(struct xfs_mount *mp,
> + struct xfs_qoff_logitem **qoffstartp,
> + uint flags);
> +STATIC int xfs_qm_log_quotaoff_end(struct xfs_mount *mp,
> + struct xfs_qoff_logitem *startqoff,
> + uint flags);
>
> /*
> * Turn off quota accounting and/or enforcement for all udquots and/or
> @@ -40,7 +43,7 @@ xfs_qm_scall_quotaoff(
> uint dqtype;
> int error;
> uint inactivate_flags;
> - xfs_qoff_logitem_t *qoffstart;
> + struct xfs_qoff_logitem *qoffstart;
>
> /*
> * No file system can have quotas enabled on disk but not in core.
> @@ -540,13 +543,13 @@ xfs_qm_scall_setqlim(
>
> STATIC int
> xfs_qm_log_quotaoff_end(
> - xfs_mount_t *mp,
> - xfs_qoff_logitem_t *startqoff,
> + struct xfs_mount *mp,
> + struct xfs_qoff_logitem *startqoff,
> uint flags)
> {
> - xfs_trans_t *tp;
> + struct xfs_trans *tp;
> int error;
> - xfs_qoff_logitem_t *qoffi;
> + struct xfs_qoff_logitem *qoffi;
>
> error = xfs_trans_alloc(mp, &M_RES(mp)->tr_qm_equotaoff, 0, 0, 0, &tp);
> if (error)
> @@ -568,13 +571,13 @@ xfs_qm_log_quotaoff_end(
>
> STATIC int
> xfs_qm_log_quotaoff(
> - xfs_mount_t *mp,
> - xfs_qoff_logitem_t **qoffstartp,
> - uint flags)
> + struct xfs_mount *mp,
> + struct xfs_qoff_logitem **qoffstartp,
> + uint flags)
> {
> - xfs_trans_t *tp;
> + struct xfs_trans *tp;
> int error;
> - xfs_qoff_logitem_t *qoffi;
> + struct xfs_qoff_logitem *qoffi;
>
> *qoffstartp = NULL;
>
> diff --git a/fs/xfs/xfs_trans_dquot.c b/fs/xfs/xfs_trans_dquot.c
> index d319347093d6..454fc83c588a 100644
> --- a/fs/xfs/xfs_trans_dquot.c
> +++ b/fs/xfs/xfs_trans_dquot.c
> @@ -824,13 +824,13 @@ xfs_trans_reserve_quota_nblks(
> /*
> * This routine is called to allocate a quotaoff log item.
> */
> -xfs_qoff_logitem_t *
> +struct xfs_qoff_logitem *
> xfs_trans_get_qoff_item(
> - xfs_trans_t *tp,
> - xfs_qoff_logitem_t *startqoff,
> + struct xfs_trans *tp,
> + struct xfs_qoff_logitem *startqoff,
> uint flags)
> {
> - xfs_qoff_logitem_t *q;
> + struct xfs_qoff_logitem *q;
>
> ASSERT(tp != NULL);
>
> @@ -852,8 +852,8 @@ xfs_trans_get_qoff_item(
> */
> void
> xfs_trans_log_quotaoff_item(
> - xfs_trans_t *tp,
> - xfs_qoff_logitem_t *qlp)
> + struct xfs_trans *tp,
> + struct xfs_qoff_logitem *qlp)
> {
> tp->t_flags |= XFS_TRANS_DIRTY;
> set_bit(XFS_LI_DIRTY, &qlp->qql_item.li_flags);
> --
> 2.23.0
>
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH v4 3/5] xfs: remove the xfs_dq_logitem_t typedef
2019-11-12 21:33 ` [PATCH v4 3/5] xfs: remove the xfs_dq_logitem_t typedef Pavel Reichl
@ 2019-11-13 4:44 ` Darrick J. Wong
2019-11-14 1:30 ` Dave Chinner
1 sibling, 0 replies; 21+ messages in thread
From: Darrick J. Wong @ 2019-11-13 4:44 UTC (permalink / raw)
To: Pavel Reichl; +Cc: linux-xfs
On Tue, Nov 12, 2019 at 10:33:08PM +0100, Pavel Reichl wrote:
> Signed-off-by: Pavel Reichl <preichl@redhat.com>
Looks good to me,
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
--D
> ---
> fs/xfs/xfs_dquot.c | 2 +-
> fs/xfs/xfs_dquot.h | 2 +-
> fs/xfs/xfs_dquot_item.h | 10 +++++-----
> 3 files changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/fs/xfs/xfs_dquot.c b/fs/xfs/xfs_dquot.c
> index 5b089afd7087..4df8ffb9906f 100644
> --- a/fs/xfs/xfs_dquot.c
> +++ b/fs/xfs/xfs_dquot.c
> @@ -1018,7 +1018,7 @@ xfs_qm_dqflush_done(
> struct xfs_buf *bp,
> struct xfs_log_item *lip)
> {
> - xfs_dq_logitem_t *qip = (struct xfs_dq_logitem *)lip;
> + struct xfs_dq_logitem *qip = (struct xfs_dq_logitem *)lip;
> struct xfs_dquot *dqp = qip->qli_dquot;
> struct xfs_ail *ailp = lip->li_ailp;
>
> diff --git a/fs/xfs/xfs_dquot.h b/fs/xfs/xfs_dquot.h
> index 831e4270cf65..fe3e46df604b 100644
> --- a/fs/xfs/xfs_dquot.h
> +++ b/fs/xfs/xfs_dquot.h
> @@ -40,7 +40,7 @@ struct xfs_dquot {
> xfs_fileoff_t q_fileoffset;
>
> struct xfs_disk_dquot q_core;
> - xfs_dq_logitem_t q_logitem;
> + struct xfs_dq_logitem q_logitem;
> /* total regular nblks used+reserved */
> xfs_qcnt_t q_res_bcount;
> /* total inos allocd+reserved */
> diff --git a/fs/xfs/xfs_dquot_item.h b/fs/xfs/xfs_dquot_item.h
> index 1aed34ccdabc..3a64a7fd3b8a 100644
> --- a/fs/xfs/xfs_dquot_item.h
> +++ b/fs/xfs/xfs_dquot_item.h
> @@ -11,11 +11,11 @@ struct xfs_trans;
> struct xfs_mount;
> struct xfs_qoff_logitem;
>
> -typedef struct xfs_dq_logitem {
> - struct xfs_log_item qli_item; /* common portion */
> - struct xfs_dquot *qli_dquot; /* dquot ptr */
> - xfs_lsn_t qli_flush_lsn; /* lsn at last flush */
> -} xfs_dq_logitem_t;
> +struct xfs_dq_logitem {
> + struct xfs_log_item qli_item; /* common portion */
> + struct xfs_dquot *qli_dquot; /* dquot ptr */
> + xfs_lsn_t qli_flush_lsn; /* lsn at last flush */
> +};
>
> typedef struct xfs_qoff_logitem {
> struct xfs_log_item qql_item; /* common portion */
> --
> 2.23.0
>
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH v4 2/5] xfs: remove the xfs_quotainfo_t typedef
2019-11-12 21:33 ` [PATCH v4 2/5] xfs: remove the xfs_quotainfo_t typedef Pavel Reichl
@ 2019-11-13 4:44 ` Darrick J. Wong
0 siblings, 0 replies; 21+ messages in thread
From: Darrick J. Wong @ 2019-11-13 4:44 UTC (permalink / raw)
To: Pavel Reichl; +Cc: linux-xfs, Dave Chinner
On Tue, Nov 12, 2019 at 10:33:07PM +0100, Pavel Reichl wrote:
> Signed-off-by: Pavel Reichl <preichl@redhat.com>
> Reviewed-by: Dave Chinner <dchinner@redhat.com>
Looks fine,
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
--D
> ---
> fs/xfs/xfs_qm.c | 20 ++++++++++----------
> fs/xfs/xfs_qm.h | 6 +++---
> fs/xfs/xfs_trans_dquot.c | 2 +-
> 3 files changed, 14 insertions(+), 14 deletions(-)
>
> diff --git a/fs/xfs/xfs_qm.c b/fs/xfs/xfs_qm.c
> index 035930a4f0dd..64a944296fda 100644
> --- a/fs/xfs/xfs_qm.c
> +++ b/fs/xfs/xfs_qm.c
> @@ -30,10 +30,10 @@
> * quota functionality, including maintaining the freelist and hash
> * tables of dquots.
> */
> -STATIC int xfs_qm_init_quotainos(xfs_mount_t *);
> -STATIC int xfs_qm_init_quotainfo(xfs_mount_t *);
> +STATIC int xfs_qm_init_quotainos(struct xfs_mount *mp);
> +STATIC int xfs_qm_init_quotainfo(struct xfs_mount *mp);
>
> -STATIC void xfs_qm_destroy_quotainos(xfs_quotainfo_t *qi);
> +STATIC void xfs_qm_destroy_quotainos(struct xfs_quotainfo *qi);
> STATIC void xfs_qm_dqfree_one(struct xfs_dquot *dqp);
> /*
> * We use the batch lookup interface to iterate over the dquots as it
> @@ -540,9 +540,9 @@ xfs_qm_shrink_count(
>
> STATIC void
> xfs_qm_set_defquota(
> - xfs_mount_t *mp,
> - uint type,
> - xfs_quotainfo_t *qinf)
> + struct xfs_mount *mp,
> + uint type,
> + struct xfs_quotainfo *qinf)
> {
> struct xfs_dquot *dqp;
> struct xfs_def_quota *defq;
> @@ -643,7 +643,7 @@ xfs_qm_init_quotainfo(
>
> ASSERT(XFS_IS_QUOTA_RUNNING(mp));
>
> - qinf = mp->m_quotainfo = kmem_zalloc(sizeof(xfs_quotainfo_t), 0);
> + qinf = mp->m_quotainfo = kmem_zalloc(sizeof(struct xfs_quotainfo), 0);
>
> error = list_lru_init(&qinf->qi_lru);
> if (error)
> @@ -710,9 +710,9 @@ xfs_qm_init_quotainfo(
> */
> void
> xfs_qm_destroy_quotainfo(
> - xfs_mount_t *mp)
> + struct xfs_mount *mp)
> {
> - xfs_quotainfo_t *qi;
> + struct xfs_quotainfo *qi;
>
> qi = mp->m_quotainfo;
> ASSERT(qi != NULL);
> @@ -1568,7 +1568,7 @@ xfs_qm_init_quotainos(
>
> STATIC void
> xfs_qm_destroy_quotainos(
> - xfs_quotainfo_t *qi)
> + struct xfs_quotainfo *qi)
> {
> if (qi->qi_uquotaip) {
> xfs_irele(qi->qi_uquotaip);
> diff --git a/fs/xfs/xfs_qm.h b/fs/xfs/xfs_qm.h
> index b41b75089548..7823af39008b 100644
> --- a/fs/xfs/xfs_qm.h
> +++ b/fs/xfs/xfs_qm.h
> @@ -54,7 +54,7 @@ struct xfs_def_quota {
> * Various quota information for individual filesystems.
> * The mount structure keeps a pointer to this.
> */
> -typedef struct xfs_quotainfo {
> +struct xfs_quotainfo {
> struct radix_tree_root qi_uquota_tree;
> struct radix_tree_root qi_gquota_tree;
> struct radix_tree_root qi_pquota_tree;
> @@ -76,8 +76,8 @@ typedef struct xfs_quotainfo {
> struct xfs_def_quota qi_usr_default;
> struct xfs_def_quota qi_grp_default;
> struct xfs_def_quota qi_prj_default;
> - struct shrinker qi_shrinker;
> -} xfs_quotainfo_t;
> + struct shrinker qi_shrinker;
> +};
>
> static inline struct radix_tree_root *
> xfs_dquot_tree(
> diff --git a/fs/xfs/xfs_trans_dquot.c b/fs/xfs/xfs_trans_dquot.c
> index 0b7f6f228662..d319347093d6 100644
> --- a/fs/xfs/xfs_trans_dquot.c
> +++ b/fs/xfs/xfs_trans_dquot.c
> @@ -585,7 +585,7 @@ xfs_trans_dqresv(
> xfs_qwarncnt_t warnlimit;
> xfs_qcnt_t total_count;
> xfs_qcnt_t *resbcountp;
> - xfs_quotainfo_t *q = mp->m_quotainfo;
> + struct xfs_quotainfo *q = mp->m_quotainfo;
> struct xfs_def_quota *defq;
>
>
> --
> 2.23.0
>
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH v4 1/5] xfs: remove the xfs_disk_dquot_t and xfs_dquot_t
2019-11-12 21:33 ` [PATCH v4 1/5] xfs: remove the xfs_disk_dquot_t and xfs_dquot_t Pavel Reichl
@ 2019-11-13 4:45 ` Darrick J. Wong
2019-11-14 1:29 ` Dave Chinner
1 sibling, 0 replies; 21+ messages in thread
From: Darrick J. Wong @ 2019-11-13 4:45 UTC (permalink / raw)
To: Pavel Reichl; +Cc: linux-xfs
On Tue, Nov 12, 2019 at 10:33:06PM +0100, Pavel Reichl wrote:
> Signed-off-by: Pavel Reichl <preichl@redhat.com>
Woot! Will test, etc.
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
--D
> ---
> fs/xfs/libxfs/xfs_dquot_buf.c | 8 +--
> fs/xfs/libxfs/xfs_format.h | 10 ++--
> fs/xfs/libxfs/xfs_trans_resv.c | 1 -
> fs/xfs/xfs_dquot.c | 18 +++----
> fs/xfs/xfs_dquot.h | 98 +++++++++++++++++-----------------
> fs/xfs/xfs_log_recover.c | 5 +-
> fs/xfs/xfs_qm.c | 30 +++++------
> fs/xfs/xfs_qm_bhv.c | 6 +--
> fs/xfs/xfs_trans_dquot.c | 42 +++++++--------
> 9 files changed, 110 insertions(+), 108 deletions(-)
>
> diff --git a/fs/xfs/libxfs/xfs_dquot_buf.c b/fs/xfs/libxfs/xfs_dquot_buf.c
> index e8bd688a4073..bedc1e752b60 100644
> --- a/fs/xfs/libxfs/xfs_dquot_buf.c
> +++ b/fs/xfs/libxfs/xfs_dquot_buf.c
> @@ -35,10 +35,10 @@ xfs_calc_dquots_per_chunk(
>
> xfs_failaddr_t
> xfs_dquot_verify(
> - struct xfs_mount *mp,
> - xfs_disk_dquot_t *ddq,
> - xfs_dqid_t id,
> - uint type) /* used only during quotacheck */
> + struct xfs_mount *mp,
> + struct xfs_disk_dquot *ddq,
> + xfs_dqid_t id,
> + uint type) /* used only during quotacheck */
> {
> /*
> * We can encounter an uninitialized dquot buffer for 2 reasons:
> diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h
> index c968b60cee15..4cae17f35e94 100644
> --- a/fs/xfs/libxfs/xfs_format.h
> +++ b/fs/xfs/libxfs/xfs_format.h
> @@ -1144,11 +1144,11 @@ static inline void xfs_dinode_put_rdev(struct xfs_dinode *dip, xfs_dev_t rdev)
>
> /*
> * This is the main portion of the on-disk representation of quota
> - * information for a user. This is the q_core of the xfs_dquot_t that
> + * information for a user. This is the q_core of the struct xfs_dquot that
> * is kept in kernel memory. We pad this with some more expansion room
> * to construct the on disk structure.
> */
> -typedef struct xfs_disk_dquot {
> +struct xfs_disk_dquot {
> __be16 d_magic; /* dquot magic = XFS_DQUOT_MAGIC */
> __u8 d_version; /* dquot version */
> __u8 d_flags; /* XFS_DQ_USER/PROJ/GROUP */
> @@ -1171,15 +1171,15 @@ typedef struct xfs_disk_dquot {
> __be32 d_rtbtimer; /* similar to above; for RT disk blocks */
> __be16 d_rtbwarns; /* warnings issued wrt RT disk blocks */
> __be16 d_pad;
> -} xfs_disk_dquot_t;
> +};
>
> /*
> * This is what goes on disk. This is separated from the xfs_disk_dquot because
> * carrying the unnecessary padding would be a waste of memory.
> */
> typedef struct xfs_dqblk {
> - xfs_disk_dquot_t dd_diskdq; /* portion that lives incore as well */
> - char dd_fill[4]; /* filling for posterity */
> + struct xfs_disk_dquot dd_diskdq; /* portion living incore as well */
> + char dd_fill[4];/* filling for posterity */
>
> /*
> * These two are only present on filesystems with the CRC bits set.
> diff --git a/fs/xfs/libxfs/xfs_trans_resv.c b/fs/xfs/libxfs/xfs_trans_resv.c
> index d12bbd526e7c..271cca13565b 100644
> --- a/fs/xfs/libxfs/xfs_trans_resv.c
> +++ b/fs/xfs/libxfs/xfs_trans_resv.c
> @@ -718,7 +718,6 @@ xfs_calc_clear_agi_bucket_reservation(
>
> /*
> * Adjusting quota limits.
> - * the xfs_disk_dquot_t: sizeof(struct xfs_disk_dquot)
> */
> STATIC uint
> xfs_calc_qm_setqlim_reservation(void)
> diff --git a/fs/xfs/xfs_dquot.c b/fs/xfs/xfs_dquot.c
> index bcd4247b5014..5b089afd7087 100644
> --- a/fs/xfs/xfs_dquot.c
> +++ b/fs/xfs/xfs_dquot.c
> @@ -48,7 +48,7 @@ static struct lock_class_key xfs_dquot_project_class;
> */
> void
> xfs_qm_dqdestroy(
> - xfs_dquot_t *dqp)
> + struct xfs_dquot *dqp)
> {
> ASSERT(list_empty(&dqp->q_lru));
>
> @@ -113,8 +113,8 @@ xfs_qm_adjust_dqlimits(
> */
> void
> xfs_qm_adjust_dqtimers(
> - xfs_mount_t *mp,
> - xfs_disk_dquot_t *d)
> + struct xfs_mount *mp,
> + struct xfs_disk_dquot *d)
> {
> ASSERT(d->d_id);
>
> @@ -497,7 +497,7 @@ xfs_dquot_from_disk(
> struct xfs_disk_dquot *ddqp = bp->b_addr + dqp->q_bufoffset;
>
> /* copy everything from disk dquot to the incore dquot */
> - memcpy(&dqp->q_core, ddqp, sizeof(xfs_disk_dquot_t));
> + memcpy(&dqp->q_core, ddqp, sizeof(struct xfs_disk_dquot));
>
> /*
> * Reservation counters are defined as reservation plus current usage
> @@ -989,7 +989,7 @@ xfs_qm_dqput(
> */
> void
> xfs_qm_dqrele(
> - xfs_dquot_t *dqp)
> + struct xfs_dquot *dqp)
> {
> if (!dqp)
> return;
> @@ -1019,7 +1019,7 @@ xfs_qm_dqflush_done(
> struct xfs_log_item *lip)
> {
> xfs_dq_logitem_t *qip = (struct xfs_dq_logitem *)lip;
> - xfs_dquot_t *dqp = qip->qli_dquot;
> + struct xfs_dquot *dqp = qip->qli_dquot;
> struct xfs_ail *ailp = lip->li_ailp;
>
> /*
> @@ -1130,7 +1130,7 @@ xfs_qm_dqflush(
> }
>
> /* This is the only portion of data that needs to persist */
> - memcpy(ddqp, &dqp->q_core, sizeof(xfs_disk_dquot_t));
> + memcpy(ddqp, &dqp->q_core, sizeof(struct xfs_disk_dquot));
>
> /*
> * Clear the dirty field and remember the flush lsn for later use.
> @@ -1188,8 +1188,8 @@ xfs_qm_dqflush(
> */
> void
> xfs_dqlock2(
> - xfs_dquot_t *d1,
> - xfs_dquot_t *d2)
> + struct xfs_dquot *d1,
> + struct xfs_dquot *d2)
> {
> if (d1 && d2) {
> ASSERT(d1 != d2);
> diff --git a/fs/xfs/xfs_dquot.h b/fs/xfs/xfs_dquot.h
> index 4fe85709d55d..831e4270cf65 100644
> --- a/fs/xfs/xfs_dquot.h
> +++ b/fs/xfs/xfs_dquot.h
> @@ -30,33 +30,36 @@ enum {
> /*
> * The incore dquot structure
> */
> -typedef struct xfs_dquot {
> - uint dq_flags; /* various flags (XFS_DQ_*) */
> - struct list_head q_lru; /* global free list of dquots */
> - struct xfs_mount*q_mount; /* filesystem this relates to */
> - uint q_nrefs; /* # active refs from inodes */
> - xfs_daddr_t q_blkno; /* blkno of dquot buffer */
> - int q_bufoffset; /* off of dq in buffer (# dquots) */
> - xfs_fileoff_t q_fileoffset; /* offset in quotas file */
> -
> - xfs_disk_dquot_t q_core; /* actual usage & quotas */
> - xfs_dq_logitem_t q_logitem; /* dquot log item */
> - xfs_qcnt_t q_res_bcount; /* total regular nblks used+reserved */
> - xfs_qcnt_t q_res_icount; /* total inos allocd+reserved */
> - xfs_qcnt_t q_res_rtbcount;/* total realtime blks used+reserved */
> - xfs_qcnt_t q_prealloc_lo_wmark;/* prealloc throttle wmark */
> - xfs_qcnt_t q_prealloc_hi_wmark;/* prealloc disabled wmark */
> - int64_t q_low_space[XFS_QLOWSP_MAX];
> - struct mutex q_qlock; /* quota lock */
> - struct completion q_flush; /* flush completion queue */
> - atomic_t q_pincount; /* dquot pin count */
> - wait_queue_head_t q_pinwait; /* dquot pinning wait queue */
> -} xfs_dquot_t;
> +struct xfs_dquot {
> + uint dq_flags;
> + struct list_head q_lru;
> + struct xfs_mount *q_mount;
> + uint q_nrefs;
> + xfs_daddr_t q_blkno;
> + int q_bufoffset;
> + xfs_fileoff_t q_fileoffset;
> +
> + struct xfs_disk_dquot q_core;
> + xfs_dq_logitem_t q_logitem;
> + /* total regular nblks used+reserved */
> + xfs_qcnt_t q_res_bcount;
> + /* total inos allocd+reserved */
> + xfs_qcnt_t q_res_icount;
> + /* total realtime blks used+reserved */
> + xfs_qcnt_t q_res_rtbcount;
> + xfs_qcnt_t q_prealloc_lo_wmark;
> + xfs_qcnt_t q_prealloc_hi_wmark;
> + int64_t q_low_space[XFS_QLOWSP_MAX];
> + struct mutex q_qlock;
> + struct completion q_flush;
> + atomic_t q_pincount;
> + struct wait_queue_head q_pinwait;
> +};
>
> /*
> * Lock hierarchy for q_qlock:
> * XFS_QLOCK_NORMAL is the implicit default,
> - * XFS_QLOCK_NESTED is the dquot with the higher id in xfs_dqlock2
> + * XFS_QLOCK_NESTED is the dquot with the higher id in xfs_dqlock2
> */
> enum {
> XFS_QLOCK_NORMAL = 0,
> @@ -64,21 +67,21 @@ enum {
> };
>
> /*
> - * Manage the q_flush completion queue embedded in the dquot. This completion
> + * Manage the q_flush completion queue embedded in the dquot. This completion
> * queue synchronizes processes attempting to flush the in-core dquot back to
> * disk.
> */
> -static inline void xfs_dqflock(xfs_dquot_t *dqp)
> +static inline void xfs_dqflock(struct xfs_dquot *dqp)
> {
> wait_for_completion(&dqp->q_flush);
> }
>
> -static inline bool xfs_dqflock_nowait(xfs_dquot_t *dqp)
> +static inline bool xfs_dqflock_nowait(struct xfs_dquot *dqp)
> {
> return try_wait_for_completion(&dqp->q_flush);
> }
>
> -static inline void xfs_dqfunlock(xfs_dquot_t *dqp)
> +static inline void xfs_dqfunlock(struct xfs_dquot *dqp)
> {
> complete(&dqp->q_flush);
> }
> @@ -112,7 +115,7 @@ static inline int xfs_this_quota_on(struct xfs_mount *mp, int type)
> }
> }
>
> -static inline xfs_dquot_t *xfs_inode_dquot(struct xfs_inode *ip, int type)
> +static inline struct xfs_dquot *xfs_inode_dquot(struct xfs_inode *ip, int type)
> {
> switch (type & XFS_DQ_ALLTYPES) {
> case XFS_DQ_USER:
> @@ -147,31 +150,30 @@ static inline bool xfs_dquot_lowsp(struct xfs_dquot *dqp)
> #define XFS_QM_ISPDQ(dqp) ((dqp)->dq_flags & XFS_DQ_PROJ)
> #define XFS_QM_ISGDQ(dqp) ((dqp)->dq_flags & XFS_DQ_GROUP)
>
> -extern void xfs_qm_dqdestroy(xfs_dquot_t *);
> -extern int xfs_qm_dqflush(struct xfs_dquot *, struct xfs_buf **);
> -extern void xfs_qm_dqunpin_wait(xfs_dquot_t *);
> -extern void xfs_qm_adjust_dqtimers(xfs_mount_t *,
> - xfs_disk_dquot_t *);
> -extern void xfs_qm_adjust_dqlimits(struct xfs_mount *,
> - struct xfs_dquot *);
> -extern xfs_dqid_t xfs_qm_id_for_quotatype(struct xfs_inode *ip,
> - uint type);
> -extern int xfs_qm_dqget(struct xfs_mount *mp, xfs_dqid_t id,
> +void xfs_qm_dqdestroy(struct xfs_dquot *dqp);
> +int xfs_qm_dqflush(struct xfs_dquot *dqp, struct xfs_buf **bpp);
> +void xfs_qm_dqunpin_wait(struct xfs_dquot *dqp);
> +void xfs_qm_adjust_dqtimers(struct xfs_mount *mp,
> + struct xfs_disk_dquot *d);
> +void xfs_qm_adjust_dqlimits(struct xfs_mount *mp,
> + struct xfs_dquot *d);
> +xfs_dqid_t xfs_qm_id_for_quotatype(struct xfs_inode *ip, uint type);
> +int xfs_qm_dqget(struct xfs_mount *mp, xfs_dqid_t id,
> uint type, bool can_alloc,
> struct xfs_dquot **dqpp);
> -extern int xfs_qm_dqget_inode(struct xfs_inode *ip, uint type,
> - bool can_alloc,
> - struct xfs_dquot **dqpp);
> -extern int xfs_qm_dqget_next(struct xfs_mount *mp, xfs_dqid_t id,
> +int xfs_qm_dqget_inode(struct xfs_inode *ip, uint type,
> + bool can_alloc,
> + struct xfs_dquot **dqpp);
> +int xfs_qm_dqget_next(struct xfs_mount *mp, xfs_dqid_t id,
> uint type, struct xfs_dquot **dqpp);
> -extern int xfs_qm_dqget_uncached(struct xfs_mount *mp,
> - xfs_dqid_t id, uint type,
> - struct xfs_dquot **dqpp);
> -extern void xfs_qm_dqput(xfs_dquot_t *);
> +int xfs_qm_dqget_uncached(struct xfs_mount *mp,
> + xfs_dqid_t id, uint type,
> + struct xfs_dquot **dqpp);
> +void xfs_qm_dqput(struct xfs_dquot *dqp);
>
> -extern void xfs_dqlock2(struct xfs_dquot *, struct xfs_dquot *);
> +void xfs_dqlock2(struct xfs_dquot *, struct xfs_dquot *);
>
> -extern void xfs_dquot_set_prealloc_limits(struct xfs_dquot *);
> +void xfs_dquot_set_prealloc_limits(struct xfs_dquot *);
>
> static inline struct xfs_dquot *xfs_qm_dqhold(struct xfs_dquot *dqp)
> {
> diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c
> index 02f2147952b3..ecea4a1c31bd 100644
> --- a/fs/xfs/xfs_log_recover.c
> +++ b/fs/xfs/xfs_log_recover.c
> @@ -2576,6 +2576,7 @@ xlog_recover_do_reg_buffer(
> int bit;
> int nbits;
> xfs_failaddr_t fa;
> + const size_t size_disk_dquot = sizeof(struct xfs_disk_dquot);
>
> trace_xfs_log_recover_buf_reg_buf(mp->m_log, buf_f);
>
> @@ -2618,7 +2619,7 @@ xlog_recover_do_reg_buffer(
> "XFS: NULL dquot in %s.", __func__);
> goto next;
> }
> - if (item->ri_buf[i].i_len < sizeof(xfs_disk_dquot_t)) {
> + if (item->ri_buf[i].i_len < size_disk_dquot) {
> xfs_alert(mp,
> "XFS: dquot too small (%d) in %s.",
> item->ri_buf[i].i_len, __func__);
> @@ -3249,7 +3250,7 @@ xlog_recover_dquot_pass2(
> xfs_alert(log->l_mp, "NULL dquot in %s.", __func__);
> return -EFSCORRUPTED;
> }
> - if (item->ri_buf[1].i_len < sizeof(xfs_disk_dquot_t)) {
> + if (item->ri_buf[1].i_len < sizeof(struct xfs_disk_dquot)) {
> xfs_alert(log->l_mp, "dquot too small (%d) in %s.",
> item->ri_buf[1].i_len, __func__);
> return -EFSCORRUPTED;
> diff --git a/fs/xfs/xfs_qm.c b/fs/xfs/xfs_qm.c
> index 66ea8e4fca86..035930a4f0dd 100644
> --- a/fs/xfs/xfs_qm.c
> +++ b/fs/xfs/xfs_qm.c
> @@ -244,14 +244,14 @@ xfs_qm_unmount_quotas(
>
> STATIC int
> xfs_qm_dqattach_one(
> - xfs_inode_t *ip,
> - xfs_dqid_t id,
> - uint type,
> - bool doalloc,
> - xfs_dquot_t **IO_idqpp)
> + struct xfs_inode *ip,
> + xfs_dqid_t id,
> + uint type,
> + bool doalloc,
> + struct xfs_dquot **IO_idqpp)
> {
> - xfs_dquot_t *dqp;
> - int error;
> + struct xfs_dquot *dqp;
> + int error;
>
> ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL));
> error = 0;
> @@ -544,8 +544,8 @@ xfs_qm_set_defquota(
> uint type,
> xfs_quotainfo_t *qinf)
> {
> - xfs_dquot_t *dqp;
> - struct xfs_def_quota *defq;
> + struct xfs_dquot *dqp;
> + struct xfs_def_quota *defq;
> struct xfs_disk_dquot *ddqp;
> int error;
>
> @@ -1746,14 +1746,14 @@ xfs_qm_vop_dqalloc(
> * Actually transfer ownership, and do dquot modifications.
> * These were already reserved.
> */
> -xfs_dquot_t *
> +struct xfs_dquot *
> xfs_qm_vop_chown(
> - xfs_trans_t *tp,
> - xfs_inode_t *ip,
> - xfs_dquot_t **IO_olddq,
> - xfs_dquot_t *newdq)
> + struct xfs_trans *tp,
> + struct xfs_inode *ip,
> + struct xfs_dquot **IO_olddq,
> + struct xfs_dquot *newdq)
> {
> - xfs_dquot_t *prevdq;
> + struct xfs_dquot *prevdq;
> uint bfield = XFS_IS_REALTIME_INODE(ip) ?
> XFS_TRANS_DQ_RTBCOUNT : XFS_TRANS_DQ_BCOUNT;
>
> diff --git a/fs/xfs/xfs_qm_bhv.c b/fs/xfs/xfs_qm_bhv.c
> index 5d72e88598b4..b784a3751fe2 100644
> --- a/fs/xfs/xfs_qm_bhv.c
> +++ b/fs/xfs/xfs_qm_bhv.c
> @@ -54,11 +54,11 @@ xfs_fill_statvfs_from_dquot(
> */
> void
> xfs_qm_statvfs(
> - xfs_inode_t *ip,
> + struct xfs_inode *ip,
> struct kstatfs *statp)
> {
> - xfs_mount_t *mp = ip->i_mount;
> - xfs_dquot_t *dqp;
> + struct xfs_mount *mp = ip->i_mount;
> + struct xfs_dquot *dqp;
>
> if (!xfs_qm_dqget(mp, xfs_get_projid(ip), XFS_DQ_PROJ, false, &dqp)) {
> xfs_fill_statvfs_from_dquot(statp, dqp);
> diff --git a/fs/xfs/xfs_trans_dquot.c b/fs/xfs/xfs_trans_dquot.c
> index 16457465833b..0b7f6f228662 100644
> --- a/fs/xfs/xfs_trans_dquot.c
> +++ b/fs/xfs/xfs_trans_dquot.c
> @@ -25,8 +25,8 @@ STATIC void xfs_trans_alloc_dqinfo(xfs_trans_t *);
> */
> void
> xfs_trans_dqjoin(
> - xfs_trans_t *tp,
> - xfs_dquot_t *dqp)
> + struct xfs_trans *tp,
> + struct xfs_dquot *dqp)
> {
> ASSERT(XFS_DQ_IS_LOCKED(dqp));
> ASSERT(dqp->q_logitem.qli_dquot == dqp);
> @@ -49,8 +49,8 @@ xfs_trans_dqjoin(
> */
> void
> xfs_trans_log_dquot(
> - xfs_trans_t *tp,
> - xfs_dquot_t *dqp)
> + struct xfs_trans *tp,
> + struct xfs_dquot *dqp)
> {
> ASSERT(XFS_DQ_IS_LOCKED(dqp));
>
> @@ -486,12 +486,12 @@ xfs_trans_apply_dquot_deltas(
> */
> void
> xfs_trans_unreserve_and_mod_dquots(
> - xfs_trans_t *tp)
> + struct xfs_trans *tp)
> {
> int i, j;
> - xfs_dquot_t *dqp;
> + struct xfs_dquot *dqp;
> struct xfs_dqtrx *qtrx, *qa;
> - bool locked;
> + bool locked;
>
> if (!tp->t_dqinfo || !(tp->t_flags & XFS_TRANS_DQ_DIRTY))
> return;
> @@ -571,21 +571,21 @@ xfs_quota_warn(
> */
> STATIC int
> xfs_trans_dqresv(
> - xfs_trans_t *tp,
> - xfs_mount_t *mp,
> - xfs_dquot_t *dqp,
> - int64_t nblks,
> - long ninos,
> - uint flags)
> + struct xfs_trans *tp,
> + struct xfs_mount *mp,
> + struct xfs_dquot *dqp,
> + int64_t nblks,
> + long ninos,
> + uint flags)
> {
> - xfs_qcnt_t hardlimit;
> - xfs_qcnt_t softlimit;
> - time_t timer;
> - xfs_qwarncnt_t warns;
> - xfs_qwarncnt_t warnlimit;
> - xfs_qcnt_t total_count;
> - xfs_qcnt_t *resbcountp;
> - xfs_quotainfo_t *q = mp->m_quotainfo;
> + xfs_qcnt_t hardlimit;
> + xfs_qcnt_t softlimit;
> + time_t timer;
> + xfs_qwarncnt_t warns;
> + xfs_qwarncnt_t warnlimit;
> + xfs_qcnt_t total_count;
> + xfs_qcnt_t *resbcountp;
> + xfs_quotainfo_t *q = mp->m_quotainfo;
> struct xfs_def_quota *defq;
>
>
> --
> 2.23.0
>
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH v4 0/5] xfs: remove several typedefs in quota code
2019-11-12 21:33 [PATCH v4 0/5] xfs: remove several typedefs in quota code Pavel Reichl
` (4 preceding siblings ...)
2019-11-12 21:33 ` [PATCH v4 5/5] Replace function declartion by actual definition Pavel Reichl
@ 2019-11-14 1:28 ` Dave Chinner
2019-11-14 5:25 ` Pavel Reichl
5 siblings, 1 reply; 21+ messages in thread
From: Dave Chinner @ 2019-11-14 1:28 UTC (permalink / raw)
To: Pavel Reichl; +Cc: linux-xfs
On Tue, Nov 12, 2019 at 10:33:05PM +0100, Pavel Reichl wrote:
> Eliminate some typedefs.
Hi Pavel,
Can you keep a change log in the series description so that we know
what has changed between versions? it makes it much easier for
reviewers to re-review the series if they know what has changed
since last time they looked at it.
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH v4 1/5] xfs: remove the xfs_disk_dquot_t and xfs_dquot_t
2019-11-12 21:33 ` [PATCH v4 1/5] xfs: remove the xfs_disk_dquot_t and xfs_dquot_t Pavel Reichl
2019-11-13 4:45 ` Darrick J. Wong
@ 2019-11-14 1:29 ` Dave Chinner
1 sibling, 0 replies; 21+ messages in thread
From: Dave Chinner @ 2019-11-14 1:29 UTC (permalink / raw)
To: Pavel Reichl; +Cc: linux-xfs
On Tue, Nov 12, 2019 at 10:33:06PM +0100, Pavel Reichl wrote:
> Signed-off-by: Pavel Reichl <preichl@redhat.com>
> ---
> fs/xfs/libxfs/xfs_dquot_buf.c | 8 +--
> fs/xfs/libxfs/xfs_format.h | 10 ++--
> fs/xfs/libxfs/xfs_trans_resv.c | 1 -
> fs/xfs/xfs_dquot.c | 18 +++----
> fs/xfs/xfs_dquot.h | 98 +++++++++++++++++-----------------
> fs/xfs/xfs_log_recover.c | 5 +-
> fs/xfs/xfs_qm.c | 30 +++++------
> fs/xfs/xfs_qm_bhv.c | 6 +--
> fs/xfs/xfs_trans_dquot.c | 42 +++++++--------
> 9 files changed, 110 insertions(+), 108 deletions(-)
Looks good.
Reviewed-by: Dave Chinner <dchinner@redhat.com>
--
Dave Chinner
david@fromorbit.com
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH v4 3/5] xfs: remove the xfs_dq_logitem_t typedef
2019-11-12 21:33 ` [PATCH v4 3/5] xfs: remove the xfs_dq_logitem_t typedef Pavel Reichl
2019-11-13 4:44 ` Darrick J. Wong
@ 2019-11-14 1:30 ` Dave Chinner
2019-11-14 5:30 ` Pavel Reichl
1 sibling, 1 reply; 21+ messages in thread
From: Dave Chinner @ 2019-11-14 1:30 UTC (permalink / raw)
To: Pavel Reichl; +Cc: linux-xfs
On Tue, Nov 12, 2019 at 10:33:08PM +0100, Pavel Reichl wrote:
> Signed-off-by: Pavel Reichl <preichl@redhat.com>
> ---
> fs/xfs/xfs_dquot.c | 2 +-
> fs/xfs/xfs_dquot.h | 2 +-
> fs/xfs/xfs_dquot_item.h | 10 +++++-----
> 3 files changed, 7 insertions(+), 7 deletions(-)
Pretty sure I've already reviewed this, but simple enough to look at
again. :)
Looks good.
Reviewed-by: Dave Chinner <dchinner@redhat.com>
--
Dave Chinner
david@fromorbit.com
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH v4 4/5] xfs: remove the xfs_qoff_logitem_t typedef
2019-11-12 21:33 ` [PATCH v4 4/5] xfs: remove the xfs_qoff_logitem_t typedef Pavel Reichl
2019-11-13 4:44 ` Darrick J. Wong
@ 2019-11-14 1:38 ` Dave Chinner
2019-11-14 4:02 ` Darrick J. Wong
1 sibling, 1 reply; 21+ messages in thread
From: Dave Chinner @ 2019-11-14 1:38 UTC (permalink / raw)
To: Pavel Reichl; +Cc: linux-xfs
On Tue, Nov 12, 2019 at 10:33:09PM +0100, Pavel Reichl wrote:
> Signed-off-by: Pavel Reichl <preichl@redhat.com>
> ---
> fs/xfs/libxfs/xfs_trans_resv.c | 5 ++---
> fs/xfs/xfs_dquot_item.h | 28 +++++++++++++++-------------
> fs/xfs/xfs_qm_syscalls.c | 29 ++++++++++++++++-------------
> fs/xfs/xfs_trans_dquot.c | 12 ++++++------
> 4 files changed, 39 insertions(+), 35 deletions(-)
>
> diff --git a/fs/xfs/libxfs/xfs_trans_resv.c b/fs/xfs/libxfs/xfs_trans_resv.c
> index 271cca13565b..da6642488177 100644
> --- a/fs/xfs/libxfs/xfs_trans_resv.c
> +++ b/fs/xfs/libxfs/xfs_trans_resv.c
> @@ -741,8 +741,7 @@ xfs_calc_qm_dqalloc_reservation(
>
> /*
> * Turning off quotas.
> - * the xfs_qoff_logitem_t: sizeof(struct xfs_qoff_logitem) * 2
> - * the superblock for the quota flags: sector size
> + * the quota off logitems: sizeof(struct xfs_qoff_logitem) * 2
Still needs the comment about the superblock. i.e. the initial
quota-off transaction modifies the quota flags in the superblock, so
it has to reserve space for that as well. Essentially the text of
the comment is iterating all the items that get modified in the
transaction and are accounted for in the function.
Everything else looks fine, though. :)
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH v4 5/5] Replace function declartion by actual definition
2019-11-12 21:33 ` [PATCH v4 5/5] Replace function declartion by actual definition Pavel Reichl
2019-11-13 4:43 ` Darrick J. Wong
@ 2019-11-14 1:40 ` Dave Chinner
1 sibling, 0 replies; 21+ messages in thread
From: Dave Chinner @ 2019-11-14 1:40 UTC (permalink / raw)
To: Pavel Reichl; +Cc: linux-xfs
On Tue, Nov 12, 2019 at 10:33:10PM +0100, Pavel Reichl wrote:
> Signed-off-by: Pavel Reichl <preichl@redhat.com>
> ---
> fs/xfs/xfs_qm_syscalls.c | 140 ++++++++++++++++++---------------------
> 1 file changed, 66 insertions(+), 74 deletions(-)
subject line needs updating but otherwise looks good.
Reviewed-by: Dave Chinner <dchinner@redhat.com>
--
Dave Chinner
david@fromorbit.com
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH v4 4/5] xfs: remove the xfs_qoff_logitem_t typedef
2019-11-14 1:38 ` Dave Chinner
@ 2019-11-14 4:02 ` Darrick J. Wong
0 siblings, 0 replies; 21+ messages in thread
From: Darrick J. Wong @ 2019-11-14 4:02 UTC (permalink / raw)
To: Dave Chinner; +Cc: Pavel Reichl, linux-xfs
On Thu, Nov 14, 2019 at 12:38:43PM +1100, Dave Chinner wrote:
> On Tue, Nov 12, 2019 at 10:33:09PM +0100, Pavel Reichl wrote:
> > Signed-off-by: Pavel Reichl <preichl@redhat.com>
> > ---
> > fs/xfs/libxfs/xfs_trans_resv.c | 5 ++---
> > fs/xfs/xfs_dquot_item.h | 28 +++++++++++++++-------------
> > fs/xfs/xfs_qm_syscalls.c | 29 ++++++++++++++++-------------
> > fs/xfs/xfs_trans_dquot.c | 12 ++++++------
> > 4 files changed, 39 insertions(+), 35 deletions(-)
> >
> > diff --git a/fs/xfs/libxfs/xfs_trans_resv.c b/fs/xfs/libxfs/xfs_trans_resv.c
> > index 271cca13565b..da6642488177 100644
> > --- a/fs/xfs/libxfs/xfs_trans_resv.c
> > +++ b/fs/xfs/libxfs/xfs_trans_resv.c
> > @@ -741,8 +741,7 @@ xfs_calc_qm_dqalloc_reservation(
> >
> > /*
> > * Turning off quotas.
> > - * the xfs_qoff_logitem_t: sizeof(struct xfs_qoff_logitem) * 2
> > - * the superblock for the quota flags: sector size
> > + * the quota off logitems: sizeof(struct xfs_qoff_logitem) * 2
>
> Still needs the comment about the superblock. i.e. the initial
> quota-off transaction modifies the quota flags in the superblock, so
> it has to reserve space for that as well. Essentially the text of
> the comment is iterating all the items that get modified in the
> transaction and are accounted for in the function.
>
> Everything else looks fine, though. :)
Well I /was/ about to stage the whole series for reals, so ... I'll just
fix the comments on the way in.
--D
> Cheers,
>
> Dave.
> --
> Dave Chinner
> david@fromorbit.com
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH v4 0/5] xfs: remove several typedefs in quota code
2019-11-14 1:28 ` [PATCH v4 0/5] xfs: remove several typedefs in quota code Dave Chinner
@ 2019-11-14 5:25 ` Pavel Reichl
2019-11-15 0:21 ` Dave Chinner
0 siblings, 1 reply; 21+ messages in thread
From: Pavel Reichl @ 2019-11-14 5:25 UTC (permalink / raw)
To: Dave Chinner; +Cc: linux-xfs
Hi Dave,
sure, I'll do whatever you guys suggests me to do.
I believe that by change log you mean just a textual description of
code changes which should be part of the cover letter, right?
I didn't do change log so far because I was just following the points
you gave me during the review process, but I understand that since
there were 2 reviewers I probably should have done some change
summary.
Thanks!
On Thu, Nov 14, 2019 at 2:28 AM Dave Chinner <david@fromorbit.com> wrote:
>
> On Tue, Nov 12, 2019 at 10:33:05PM +0100, Pavel Reichl wrote:
> > Eliminate some typedefs.
>
> Hi Pavel,
>
> Can you keep a change log in the series description so that we know
> what has changed between versions? it makes it much easier for
> reviewers to re-review the series if they know what has changed
> since last time they looked at it.
>
> Cheers,
>
> Dave.
> --
> Dave Chinner
> david@fromorbit.com
>
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH v4 3/5] xfs: remove the xfs_dq_logitem_t typedef
2019-11-14 1:30 ` Dave Chinner
@ 2019-11-14 5:30 ` Pavel Reichl
2019-11-14 22:20 ` Dave Chinner
0 siblings, 1 reply; 21+ messages in thread
From: Pavel Reichl @ 2019-11-14 5:30 UTC (permalink / raw)
To: Dave Chinner; +Cc: linux-xfs
Yes Dave, but IIRC the patch failed to apply cleanly so I had to use
the -3way option and I got the idea that me merging code manually
voids your ACK :-)
On Thu, Nov 14, 2019 at 2:30 AM Dave Chinner <david@fromorbit.com> wrote:
>
> On Tue, Nov 12, 2019 at 10:33:08PM +0100, Pavel Reichl wrote:
> > Signed-off-by: Pavel Reichl <preichl@redhat.com>
> > ---
> > fs/xfs/xfs_dquot.c | 2 +-
> > fs/xfs/xfs_dquot.h | 2 +-
> > fs/xfs/xfs_dquot_item.h | 10 +++++-----
> > 3 files changed, 7 insertions(+), 7 deletions(-)
>
> Pretty sure I've already reviewed this, but simple enough to look at
> again. :)
>
> Looks good.
>
> Reviewed-by: Dave Chinner <dchinner@redhat.com>
>
> --
> Dave Chinner
> david@fromorbit.com
>
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH v4 3/5] xfs: remove the xfs_dq_logitem_t typedef
2019-11-14 5:30 ` Pavel Reichl
@ 2019-11-14 22:20 ` Dave Chinner
0 siblings, 0 replies; 21+ messages in thread
From: Dave Chinner @ 2019-11-14 22:20 UTC (permalink / raw)
To: Pavel Reichl; +Cc: linux-xfs
On Thu, Nov 14, 2019 at 06:30:25AM +0100, Pavel Reichl wrote:
> Yes Dave, but IIRC the patch failed to apply cleanly so I had to use
> the -3way option and I got the idea that me merging code manually
> voids your ACK :-)
It depends. If the code itself is unchanged and it's just merge
noise, then updating doesn't invalidate the review. If you had to
change the code/logic because it no longer worked, then it's fair to
ask for it to be reviewed again. :)
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH v4 0/5] xfs: remove several typedefs in quota code
2019-11-14 5:25 ` Pavel Reichl
@ 2019-11-15 0:21 ` Dave Chinner
0 siblings, 0 replies; 21+ messages in thread
From: Dave Chinner @ 2019-11-15 0:21 UTC (permalink / raw)
To: Pavel Reichl; +Cc: linux-xfs
On Thu, Nov 14, 2019 at 06:25:57AM +0100, Pavel Reichl wrote:
> Hi Dave,
>
> sure, I'll do whatever you guys suggests me to do.
>
> I believe that by change log you mean just a textual description of
> code changes which should be part of the cover letter, right?
Yeah, the patch 0/X of the series you post.
> I didn't do change log so far because I was just following the points
> you gave me during the review process, but I understand that since
> there were 2 reviewers I probably should have done some change
> summary.
FWIW, even if there is only one reviewer, they might be looking at
lots of different code and it may be a couple of days between them
looking at it. So the changelog still helps a single reviewer focus
on what they need to really look closely at this time around.
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2019-11-15 0:21 UTC | newest]
Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-12 21:33 [PATCH v4 0/5] xfs: remove several typedefs in quota code Pavel Reichl
2019-11-12 21:33 ` [PATCH v4 1/5] xfs: remove the xfs_disk_dquot_t and xfs_dquot_t Pavel Reichl
2019-11-13 4:45 ` Darrick J. Wong
2019-11-14 1:29 ` Dave Chinner
2019-11-12 21:33 ` [PATCH v4 2/5] xfs: remove the xfs_quotainfo_t typedef Pavel Reichl
2019-11-13 4:44 ` Darrick J. Wong
2019-11-12 21:33 ` [PATCH v4 3/5] xfs: remove the xfs_dq_logitem_t typedef Pavel Reichl
2019-11-13 4:44 ` Darrick J. Wong
2019-11-14 1:30 ` Dave Chinner
2019-11-14 5:30 ` Pavel Reichl
2019-11-14 22:20 ` Dave Chinner
2019-11-12 21:33 ` [PATCH v4 4/5] xfs: remove the xfs_qoff_logitem_t typedef Pavel Reichl
2019-11-13 4:44 ` Darrick J. Wong
2019-11-14 1:38 ` Dave Chinner
2019-11-14 4:02 ` Darrick J. Wong
2019-11-12 21:33 ` [PATCH v4 5/5] Replace function declartion by actual definition Pavel Reichl
2019-11-13 4:43 ` Darrick J. Wong
2019-11-14 1:40 ` Dave Chinner
2019-11-14 1:28 ` [PATCH v4 0/5] xfs: remove several typedefs in quota code Dave Chinner
2019-11-14 5:25 ` Pavel Reichl
2019-11-15 0:21 ` Dave Chinner
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).