Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9597df6b authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Dave Chinner
Browse files

xfs: remove duplicate code in xlog_cil_insert_format_items



Share code that was previously duplicated in two branches.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
Signed-off-by: default avatarDave Chinner <david@fromorbit.com>
parent f9b395a8
Loading
Loading
Loading
Loading
+13 −20
Original line number Diff line number Diff line
@@ -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;
		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];
		}

		/* Ensure the lv is set up according to ->iop_size */
		lv->lv_niovecs = niovecs;

		/* The allocated data region lies beyond the iovec region */
		lv->lv_buf = (char *)lv + buf_size - nbytes;