]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs: factor log item initialisation
authorDave Chinner <dchinner@redhat.com>
Tue, 21 May 2019 16:03:36 +0000 (11:03 -0500)
committerEric Sandeen <sandeen@redhat.com>
Tue, 21 May 2019 16:03:36 +0000 (11:03 -0500)
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>
[sandeen: merge to userspace]
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Allison Collins <allison.henderson@oracle.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
libxfs/libxfs_priv.h
libxfs/logitem.c
libxfs/util.c

index d668a157d33aa2cf17ba1c39a52b89935d6ae5a0..a8c0f0b57c31a840857b348f95f66b42f6cf12b5 100644 (file)
@@ -564,6 +564,7 @@ int libxfs_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 */
index e862ab4f26fd1ab2b54936ac2a154481deee5054..14c62f670bb8c971355e827e556b426438850fa4 100644 (file)
@@ -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;
 }
index 8c9954f6d9824a51f617af50f7644201b858f078..0496dcb9af4413082486254ccf3165181ab27cd1 100644 (file)
@@ -692,6 +692,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)