]> Pileus Git - ~andy/linux/blobdiff - fs/xfs/xfs_extfree_item.c
ext4: atomically set inode->i_flags in ext4_set_inode_flags()
[~andy/linux] / fs / xfs / xfs_extfree_item.c
index 3680d04f973fa1c9de4390079a5c5ba3d8e69eae..fb7a4c1ce1c537255294d66e79639699658544b1 100644 (file)
@@ -26,6 +26,7 @@
 #include "xfs_trans_priv.h"
 #include "xfs_buf_item.h"
 #include "xfs_extfree_item.h"
+#include "xfs_log.h"
 
 
 kmem_zone_t    *xfs_efi_zone;
@@ -101,9 +102,10 @@ xfs_efi_item_size(
 STATIC void
 xfs_efi_item_format(
        struct xfs_log_item     *lip,
-       struct xfs_log_iovec    *log_vector)
+       struct xfs_log_vec      *lv)
 {
        struct xfs_efi_log_item *efip = EFI_ITEM(lip);
+       struct xfs_log_iovec    *vecp = NULL;
 
        ASSERT(atomic_read(&efip->efi_next_extent) ==
                                efip->efi_format.efi_nextents);
@@ -111,10 +113,9 @@ xfs_efi_item_format(
        efip->efi_format.efi_type = XFS_LI_EFI;
        efip->efi_format.efi_size = 1;
 
-       log_vector->i_addr = &efip->efi_format;
-       log_vector->i_len = xfs_efi_item_sizeof(efip);
-       log_vector->i_type = XLOG_REG_TYPE_EFI_FORMAT;
-       ASSERT(log_vector->i_len >= sizeof(xfs_efi_log_format_t));
+       xlog_copy_iovec(lv, &vecp, XLOG_REG_TYPE_EFI_FORMAT,
+                       &efip->efi_format,
+                       xfs_efi_item_sizeof(efip));
 }
 
 
@@ -368,19 +369,19 @@ xfs_efd_item_size(
 STATIC void
 xfs_efd_item_format(
        struct xfs_log_item     *lip,
-       struct xfs_log_iovec    *log_vector)
+       struct xfs_log_vec      *lv)
 {
        struct xfs_efd_log_item *efdp = EFD_ITEM(lip);
+       struct xfs_log_iovec    *vecp = NULL;
 
        ASSERT(efdp->efd_next_extent == efdp->efd_format.efd_nextents);
 
        efdp->efd_format.efd_type = XFS_LI_EFD;
        efdp->efd_format.efd_size = 1;
 
-       log_vector->i_addr = &efdp->efd_format;
-       log_vector->i_len = xfs_efd_item_sizeof(efdp);
-       log_vector->i_type = XLOG_REG_TYPE_EFD_FORMAT;
-       ASSERT(log_vector->i_len >= sizeof(xfs_efd_log_format_t));
+       xlog_copy_iovec(lv, &vecp, XLOG_REG_TYPE_EFD_FORMAT,
+                       &efdp->efd_format,
+                       xfs_efd_item_sizeof(efdp));
 }
 
 /*