xfs
[Top] [All Lists]

[PATCH 01/10] xfs: remove duplicate code in xlog_cil_insert_format_items

To: xfs@xxxxxxxxxxx
Subject: [PATCH 01/10] xfs: remove duplicate code in xlog_cil_insert_format_items
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Fri, 29 Nov 2013 00:39:20 -0800
Delivered-to: xfs@xxxxxxxxxxx
References: <20131129083919.207915844@xxxxxxxxxxxxxxxxxxxxxx>
User-agent: quilt/0.60-1
Share code that was previously duplicated in two branches.

Signed-off-by: Christoph Hellwig <hch@xxxxxx>
---
 fs/xfs/xfs_log_cil.c |   33 +++++++++++++--------------------
 1 file changed, 13 insertions(+), 20 deletions(-)

diff --git a/fs/xfs/xfs_log_cil.c b/fs/xfs/xfs_log_cil.c
index 5eb51fc..0a7a8ce 100644
--- a/fs/xfs/xfs_log_cil.c
+++ b/fs/xfs/xfs_log_cil.c
@@ -254,29 +254,22 @@ xlog_cil_insert_format_items(
                         */
                        *diff_iovecs -= lv->lv_niovecs;
                        *diff_len -= lv->lv_buf_len;
-
-                       /* Ensure the lv is set up according to ->iop_size */
-                       lv->lv_niovecs = niovecs;
-                       lv->lv_buf = (char *)lv + buf_size - nbytes;
-
-                       lv->lv_buf_len = xlog_cil_lv_item_format(lip, lv);
-                       goto insert;
+               } else {
+                       /* allocate new data chunk */
+                       lv = kmem_zalloc(buf_size, KM_SLEEP|KM_NOFS);
+                       lv->lv_item = lip;
+                       lv->lv_size = buf_size;
+                       if (ordered) {
+                               /* track as an ordered logvec */
+                               ASSERT(lip->li_lv == NULL);
+                               lv->lv_buf_len = XFS_LOG_VEC_ORDERED;
+                               goto insert;
+                       }
+                       lv->lv_iovecp = (struct xfs_log_iovec *)&lv[1];
                }
 
-               /* allocate new data chunk */
-               lv = kmem_zalloc(buf_size, KM_SLEEP|KM_NOFS);
-               lv->lv_item = lip;
-               lv->lv_size = buf_size;
+               /* Ensure the lv is set up according to ->iop_size */
                lv->lv_niovecs = niovecs;
-               if (ordered) {
-                       /* track as an ordered logvec */
-                       ASSERT(lip->li_lv == NULL);
-                       lv->lv_buf_len = XFS_LOG_VEC_ORDERED;
-                       goto insert;
-               }
-
-               /* The allocated iovec region lies beyond the log vector. */
-               lv->lv_iovecp = (struct xfs_log_iovec *)&lv[1];
 
                /* The allocated data region lies beyond the iovec region */
                lv->lv_buf = (char *)lv + buf_size - nbytes;
-- 
1.7.10.4


<Prev in Thread] Current Thread [Next in Thread>