linux-xfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [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).