[8/3] xfs: factor log item initialisation
diff mbox series

Message ID 31991357-c836-6a50-4203-dae25c051def@redhat.com
State Superseded
Headers show
Series
  • xfsprogs: more libxfs/ spring cleaning
Related show

Commit Message

Eric Sandeen May 16, 2019, 8:41 p.m. UTC
Each log item type does manual initialisation of the log item.
Delayed logging introduces new fields that need initialisation, so
factor all the open coded initialisation into a common function
first.

Source kernel commit: 43f5efc5b59db1b66e39fe9fdfc4ba6a27152afa

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
---
 libxfs/libxfs_priv.h |  1 +
 libxfs/logitem.c     |  8 ++------
 libxfs/util.c        | 12 ++++++++++++
 3 files changed, 15 insertions(+), 6 deletions(-)

Comments

Allison Collins May 17, 2019, 11:50 p.m. UTC | #1
On 5/16/19 1:41 PM, Eric Sandeen wrote:
> Each log item type does manual initialisation of the log item.
> Delayed logging introduces new fields that need initialisation, so
> factor all the open coded initialisation into a common function
> first.
> 
> Source kernel commit: 43f5efc5b59db1b66e39fe9fdfc4ba6a27152afa
> 
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
> Reviewed-by: Christoph Hellwig <hch@lst.de>
> Signed-off-by: Eric Sandeen <sandeen@redhat.com>

Looks good to me.
Reviewed-by: Allison Collins <allison.henderson@oracle.com>

> ---
>   libxfs/libxfs_priv.h |  1 +
>   libxfs/logitem.c     |  8 ++------
>   libxfs/util.c        | 12 ++++++++++++
>   3 files changed, 15 insertions(+), 6 deletions(-)
> 
> diff --git a/libxfs/libxfs_priv.h b/libxfs/libxfs_priv.h
> index 157a99d6..7551ed65 100644
> --- a/libxfs/libxfs_priv.h
> +++ b/libxfs/libxfs_priv.h
> @@ -564,6 +564,7 @@ int xfs_zero_extent(struct xfs_inode *ip, xfs_fsblock_t start_fsb,
>   
>   
>   bool xfs_log_check_lsn(struct xfs_mount *, xfs_lsn_t);
> +void xfs_log_item_init(struct xfs_mount *, struct xfs_log_item *, int);
>   #define xfs_log_in_recovery(mp)	(false)
>   
>   /* xfs_icache.c */
> diff --git a/libxfs/logitem.c b/libxfs/logitem.c
> index e862ab4f..14c62f67 100644
> --- a/libxfs/logitem.c
> +++ b/libxfs/logitem.c
> @@ -103,9 +103,7 @@ xfs_buf_item_init(
>   	fprintf(stderr, "adding buf item %p for not-logged buffer %p\n",
>   		bip, bp);
>   #endif
> -	bip->bli_item.li_type = XFS_LI_BUF;
> -	bip->bli_item.li_mountp = mp;
> -	INIT_LIST_HEAD(&bip->bli_item.li_trans);
> +	xfs_log_item_init(mp, &bip->bli_item, XFS_LI_BUF);
>   	bip->bli_buf = bp;
>   	bip->__bli_format.blf_type = XFS_LI_BUF;
>   	bip->__bli_format.blf_blkno = (int64_t)XFS_BUF_ADDR(bp);
> @@ -149,8 +147,6 @@ xfs_inode_item_init(
>   		ip->i_ino, iip);
>   #endif
>   
> -	iip->ili_item.li_type = XFS_LI_INODE;
> -	iip->ili_item.li_mountp = mp;
> -	INIT_LIST_HEAD(&iip->ili_item.li_trans);
> +	xfs_log_item_init(mp, &iip->ili_item, XFS_LI_INODE);
>   	iip->ili_inode = ip;
>   }
> diff --git a/libxfs/util.c b/libxfs/util.c
> index 4901123a..aff91080 100644
> --- a/libxfs/util.c
> +++ b/libxfs/util.c
> @@ -691,6 +691,18 @@ xfs_log_check_lsn(
>   	return true;
>   }
>   
> +void
> +xfs_log_item_init(
> +	struct xfs_mount	*mp,
> +	struct xfs_log_item	*item,
> +	int			type)
> +{
> +	item->li_mountp = mp;
> +	item->li_type = type;
> +
> +	INIT_LIST_HEAD(&item->li_trans);
> +}
> +
>   static struct xfs_buftarg *
>   xfs_find_bdev_for_inode(
>   	struct xfs_inode	*ip)
>

Patch
diff mbox series

diff --git a/libxfs/libxfs_priv.h b/libxfs/libxfs_priv.h
index 157a99d6..7551ed65 100644
--- a/libxfs/libxfs_priv.h
+++ b/libxfs/libxfs_priv.h
@@ -564,6 +564,7 @@  int xfs_zero_extent(struct xfs_inode *ip, xfs_fsblock_t start_fsb,
 
 
 bool xfs_log_check_lsn(struct xfs_mount *, xfs_lsn_t);
+void xfs_log_item_init(struct xfs_mount *, struct xfs_log_item *, int);
 #define xfs_log_in_recovery(mp)	(false)
 
 /* xfs_icache.c */
diff --git a/libxfs/logitem.c b/libxfs/logitem.c
index e862ab4f..14c62f67 100644
--- a/libxfs/logitem.c
+++ b/libxfs/logitem.c
@@ -103,9 +103,7 @@  xfs_buf_item_init(
 	fprintf(stderr, "adding buf item %p for not-logged buffer %p\n",
 		bip, bp);
 #endif
-	bip->bli_item.li_type = XFS_LI_BUF;
-	bip->bli_item.li_mountp = mp;
-	INIT_LIST_HEAD(&bip->bli_item.li_trans);
+	xfs_log_item_init(mp, &bip->bli_item, XFS_LI_BUF);
 	bip->bli_buf = bp;
 	bip->__bli_format.blf_type = XFS_LI_BUF;
 	bip->__bli_format.blf_blkno = (int64_t)XFS_BUF_ADDR(bp);
@@ -149,8 +147,6 @@  xfs_inode_item_init(
 		ip->i_ino, iip);
 #endif
 
-	iip->ili_item.li_type = XFS_LI_INODE;
-	iip->ili_item.li_mountp = mp;
-	INIT_LIST_HEAD(&iip->ili_item.li_trans);
+	xfs_log_item_init(mp, &iip->ili_item, XFS_LI_INODE);
 	iip->ili_inode = ip;
 }
diff --git a/libxfs/util.c b/libxfs/util.c
index 4901123a..aff91080 100644
--- a/libxfs/util.c
+++ b/libxfs/util.c
@@ -691,6 +691,18 @@  xfs_log_check_lsn(
 	return true;
 }
 
+void
+xfs_log_item_init(
+	struct xfs_mount	*mp,
+	struct xfs_log_item	*item,
+	int			type)
+{
+	item->li_mountp = mp; 
+	item->li_type = type;
+        
+	INIT_LIST_HEAD(&item->li_trans);
+}   
+
 static struct xfs_buftarg *
 xfs_find_bdev_for_inode(
 	struct xfs_inode	*ip)