diff options
-rw-r--r-- | fs/xfs/quota/xfs_dquot_item.c | 12 | ||||
-rw-r--r-- | fs/xfs/xfs_buf_item.c | 5 | ||||
-rw-r--r-- | fs/xfs/xfs_extfree_item.c | 10 | ||||
-rw-r--r-- | fs/xfs/xfs_inode_item.c | 12 | ||||
-rw-r--r-- | fs/xfs/xfs_log.c | 13 | ||||
-rw-r--r-- | fs/xfs/xfs_log.h | 7 |
6 files changed, 29 insertions, 30 deletions
diff --git a/fs/xfs/quota/xfs_dquot_item.c b/fs/xfs/quota/xfs_dquot_item.c index 4e4ee9a57194..639d96554a9e 100644 --- a/fs/xfs/quota/xfs_dquot_item.c +++ b/fs/xfs/quota/xfs_dquot_item.c | |||
@@ -357,9 +357,8 @@ xfs_qm_dquot_logitem_init( | |||
357 | xfs_dq_logitem_t *lp; | 357 | xfs_dq_logitem_t *lp; |
358 | lp = &dqp->q_logitem; | 358 | lp = &dqp->q_logitem; |
359 | 359 | ||
360 | lp->qli_item.li_type = XFS_LI_DQUOT; | 360 | xfs_log_item_init(dqp->q_mount, &lp->qli_item, XFS_LI_DQUOT, |
361 | lp->qli_item.li_ops = &xfs_dquot_item_ops; | 361 | &xfs_dquot_item_ops); |
362 | lp->qli_item.li_mountp = dqp->q_mount; | ||
363 | lp->qli_dquot = dqp; | 362 | lp->qli_dquot = dqp; |
364 | lp->qli_format.qlf_type = XFS_LI_DQUOT; | 363 | lp->qli_format.qlf_type = XFS_LI_DQUOT; |
365 | lp->qli_format.qlf_id = be32_to_cpu(dqp->q_core.d_id); | 364 | lp->qli_format.qlf_id = be32_to_cpu(dqp->q_core.d_id); |
@@ -586,11 +585,8 @@ xfs_qm_qoff_logitem_init( | |||
586 | 585 | ||
587 | qf = (xfs_qoff_logitem_t*) kmem_zalloc(sizeof(xfs_qoff_logitem_t), KM_SLEEP); | 586 | qf = (xfs_qoff_logitem_t*) kmem_zalloc(sizeof(xfs_qoff_logitem_t), KM_SLEEP); |
588 | 587 | ||
589 | qf->qql_item.li_type = XFS_LI_QUOTAOFF; | 588 | xfs_log_item_init(mp, &qf->qql_item, XFS_LI_QUOTAOFF, start ? |
590 | if (start) | 589 | &xfs_qm_qoffend_logitem_ops : &xfs_qm_qoff_logitem_ops); |
591 | qf->qql_item.li_ops = &xfs_qm_qoffend_logitem_ops; | ||
592 | else | ||
593 | qf->qql_item.li_ops = &xfs_qm_qoff_logitem_ops; | ||
594 | qf->qql_item.li_mountp = mp; | 590 | qf->qql_item.li_mountp = mp; |
595 | qf->qql_format.qf_type = XFS_LI_QUOTAOFF; | 591 | qf->qql_format.qf_type = XFS_LI_QUOTAOFF; |
596 | qf->qql_format.qf_flags = flags; | 592 | qf->qql_format.qf_flags = flags; |
diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index f3c49e69eab9..aace237b4f46 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c | |||
@@ -733,10 +733,7 @@ xfs_buf_item_init( | |||
733 | 733 | ||
734 | bip = (xfs_buf_log_item_t*)kmem_zone_zalloc(xfs_buf_item_zone, | 734 | bip = (xfs_buf_log_item_t*)kmem_zone_zalloc(xfs_buf_item_zone, |
735 | KM_SLEEP); | 735 | KM_SLEEP); |
736 | bip->bli_item.li_type = XFS_LI_BUF; | 736 | xfs_log_item_init(mp, &bip->bli_item, XFS_LI_BUF, &xfs_buf_item_ops); |
737 | bip->bli_item.li_ops = &xfs_buf_item_ops; | ||
738 | bip->bli_item.li_mountp = mp; | ||
739 | bip->bli_item.li_ailp = mp->m_ail; | ||
740 | bip->bli_buf = bp; | 737 | bip->bli_buf = bp; |
741 | xfs_buf_hold(bp); | 738 | xfs_buf_hold(bp); |
742 | bip->bli_format.blf_type = XFS_LI_BUF; | 739 | bip->bli_format.blf_type = XFS_LI_BUF; |
diff --git a/fs/xfs/xfs_extfree_item.c b/fs/xfs/xfs_extfree_item.c index 6f35ed1b39b9..e461e93b0350 100644 --- a/fs/xfs/xfs_extfree_item.c +++ b/fs/xfs/xfs_extfree_item.c | |||
@@ -259,10 +259,7 @@ xfs_efi_init(xfs_mount_t *mp, | |||
259 | KM_SLEEP); | 259 | KM_SLEEP); |
260 | } | 260 | } |
261 | 261 | ||
262 | efip->efi_item.li_type = XFS_LI_EFI; | 262 | xfs_log_item_init(mp, &efip->efi_item, XFS_LI_EFI, &xfs_efi_item_ops); |
263 | efip->efi_item.li_ops = &xfs_efi_item_ops; | ||
264 | efip->efi_item.li_mountp = mp; | ||
265 | efip->efi_item.li_ailp = mp->m_ail; | ||
266 | efip->efi_format.efi_nextents = nextents; | 263 | efip->efi_format.efi_nextents = nextents; |
267 | efip->efi_format.efi_id = (__psint_t)(void*)efip; | 264 | efip->efi_format.efi_id = (__psint_t)(void*)efip; |
268 | 265 | ||
@@ -554,10 +551,7 @@ xfs_efd_init(xfs_mount_t *mp, | |||
554 | KM_SLEEP); | 551 | KM_SLEEP); |
555 | } | 552 | } |
556 | 553 | ||
557 | efdp->efd_item.li_type = XFS_LI_EFD; | 554 | xfs_log_item_init(mp, &efdp->efd_item, XFS_LI_EFD, &xfs_efd_item_ops); |
558 | efdp->efd_item.li_ops = &xfs_efd_item_ops; | ||
559 | efdp->efd_item.li_mountp = mp; | ||
560 | efdp->efd_item.li_ailp = mp->m_ail; | ||
561 | efdp->efd_efip = efip; | 555 | efdp->efd_efip = efip; |
562 | efdp->efd_format.efd_nextents = nextents; | 556 | efdp->efd_format.efd_nextents = nextents; |
563 | efdp->efd_format.efd_efi_id = efip->efi_format.efi_id; | 557 | efdp->efd_format.efd_efi_id = efip->efi_format.efi_id; |
diff --git a/fs/xfs/xfs_inode_item.c b/fs/xfs/xfs_inode_item.c index 7bfea8540159..32e4188411c2 100644 --- a/fs/xfs/xfs_inode_item.c +++ b/fs/xfs/xfs_inode_item.c | |||
@@ -865,17 +865,9 @@ xfs_inode_item_init( | |||
865 | ASSERT(ip->i_itemp == NULL); | 865 | ASSERT(ip->i_itemp == NULL); |
866 | iip = ip->i_itemp = kmem_zone_zalloc(xfs_ili_zone, KM_SLEEP); | 866 | iip = ip->i_itemp = kmem_zone_zalloc(xfs_ili_zone, KM_SLEEP); |
867 | 867 | ||
868 | iip->ili_item.li_type = XFS_LI_INODE; | ||
869 | iip->ili_item.li_ops = &xfs_inode_item_ops; | ||
870 | iip->ili_item.li_mountp = mp; | ||
871 | iip->ili_item.li_ailp = mp->m_ail; | ||
872 | iip->ili_inode = ip; | 868 | iip->ili_inode = ip; |
873 | 869 | xfs_log_item_init(mp, &iip->ili_item, XFS_LI_INODE, | |
874 | /* | 870 | &xfs_inode_item_ops); |
875 | We have zeroed memory. No need ... | ||
876 | iip->ili_extents_buf = NULL; | ||
877 | */ | ||
878 | |||
879 | iip->ili_format.ilf_type = XFS_LI_INODE; | 871 | iip->ili_format.ilf_type = XFS_LI_INODE; |
880 | iip->ili_format.ilf_ino = ip->i_ino; | 872 | iip->ili_format.ilf_ino = ip->i_ino; |
881 | iip->ili_format.ilf_blkno = ip->i_imap.im_blkno; | 873 | iip->ili_format.ilf_blkno = ip->i_imap.im_blkno; |
diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index 2be019136287..8556c59628ba 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c | |||
@@ -648,6 +648,19 @@ xfs_log_unmount(xfs_mount_t *mp) | |||
648 | xlog_dealloc_log(mp->m_log); | 648 | xlog_dealloc_log(mp->m_log); |
649 | } | 649 | } |
650 | 650 | ||
651 | void | ||
652 | xfs_log_item_init( | ||
653 | struct xfs_mount *mp, | ||
654 | struct xfs_log_item *item, | ||
655 | int type, | ||
656 | struct xfs_item_ops *ops) | ||
657 | { | ||
658 | item->li_mountp = mp; | ||
659 | item->li_ailp = mp->m_ail; | ||
660 | item->li_type = type; | ||
661 | item->li_ops = ops; | ||
662 | } | ||
663 | |||
651 | /* | 664 | /* |
652 | * Write region vectors to log. The write happens using the space reservation | 665 | * Write region vectors to log. The write happens using the space reservation |
653 | * of the ticket (tic). It is not a requirement that all writes for a given | 666 | * of the ticket (tic). It is not a requirement that all writes for a given |
diff --git a/fs/xfs/xfs_log.h b/fs/xfs/xfs_log.h index 97a24c7795a4..f3a564d298d0 100644 --- a/fs/xfs/xfs_log.h +++ b/fs/xfs/xfs_log.h | |||
@@ -126,6 +126,13 @@ typedef struct xfs_log_callback { | |||
126 | struct xfs_mount; | 126 | struct xfs_mount; |
127 | struct xlog_in_core; | 127 | struct xlog_in_core; |
128 | struct xlog_ticket; | 128 | struct xlog_ticket; |
129 | struct xfs_log_item; | ||
130 | struct xfs_item_ops; | ||
131 | |||
132 | void xfs_log_item_init(struct xfs_mount *mp, | ||
133 | struct xfs_log_item *item, | ||
134 | int type, | ||
135 | struct xfs_item_ops *ops); | ||
129 | 136 | ||
130 | xfs_lsn_t xfs_log_done(struct xfs_mount *mp, | 137 | xfs_lsn_t xfs_log_done(struct xfs_mount *mp, |
131 | struct xlog_ticket *ticket, | 138 | struct xlog_ticket *ticket, |