Nir Soffer
2022-Feb-20 12:13 UTC
[Libguestfs] [PATCH libnbd 2/8] copy: Rename copy_subcommand to create_subcommand
copy_subcommand creates a new command without copying the original
command. Rename the function to make this more clear.
Signed-off-by: Nir Soffer <nsoffer at redhat.com>
---
copy/multi-thread-copying.c | 29 ++++++++++++++---------------
1 file changed, 14 insertions(+), 15 deletions(-)
diff --git a/copy/multi-thread-copying.c b/copy/multi-thread-copying.c
index 632d7006..2d16d2df 100644
--- a/copy/multi-thread-copying.c
+++ b/copy/multi-thread-copying.c
@@ -332,26 +332,25 @@ poll_both_ends (uintptr_t index)
dst->ops->asynch_notify_write (dst, index);
else if ((fds[1].revents & (POLLERR | POLLNVAL)) != 0) {
errno = ENOTCONN;
perror (dst->name);
exit (EXIT_FAILURE);
}
}
}
/* Create a sub-command of an existing command. This creates a slice
- * referencing the buffer of the existing command in order to avoid
- * copying.
+ * referencing the buffer of the existing command without copying.
*/
static struct command *
-copy_subcommand (struct command *command, uint64_t offset, size_t len,
- bool zero)
+create_subcommand (struct command *command, uint64_t offset, size_t len,
+ bool zero)
{
const uint64_t end = command->offset + command->slice.len;
struct command *newcommand;
assert (command->offset <= offset && offset < end);
assert (offset + len <= end);
newcommand = calloc (1, sizeof *newcommand);
if (newcommand == NULL) {
perror ("calloc");
@@ -409,21 +408,21 @@ finished_read (void *vp, int *error)
i + sparse_size <= end;
i += sparse_size) {
if (is_zero (slice_ptr (command->slice) + i-start, sparse_size)) {
/* It's a zero range. If the last was a zero too then we do
* nothing here which coalesces. Otherwise write the last data
* and start a new zero range.
*/
if (!last_is_zero) {
/* Write the last data (if any). */
if (i - last_offset > 0) {
- newcommand = copy_subcommand (command,
+ newcommand = create_subcommand (command,
last_offset, i - last_offset,
false);
dst->ops->asynch_write (dst, newcommand,
(nbd_completion_callback) {
.callback = free_command,
.user_data = newcommand,
});
}
/* Start the new zero range. */
last_offset = i;
@@ -431,55 +430,55 @@ finished_read (void *vp, int *error)
}
}
else {
/* It's data. If the last was data too, do nothing =>
* coalesce. Otherwise write the last zero range and start a
* new data.
*/
if (last_is_zero) {
/* Write the last zero range (if any). */
if (i - last_offset > 0) {
- newcommand = copy_subcommand (command,
- last_offset, i - last_offset,
- true);
+ newcommand = create_subcommand (command,
+ last_offset, i - last_offset,
+ true);
fill_dst_range_with_zeroes (newcommand);
}
/* Start the new data. */
last_offset = i;
last_is_zero = false;
}
}
} /* for i */
/* Write the last_offset up to i. */
if (i - last_offset > 0) {
if (!last_is_zero) {
- newcommand = copy_subcommand (command,
- last_offset, i - last_offset,
- false);
+ newcommand = create_subcommand (command,
+ last_offset, i - last_offset,
+ false);
dst->ops->asynch_write (dst, newcommand,
(nbd_completion_callback) {
.callback = free_command,
.user_data = newcommand,
});
}
else {
- newcommand = copy_subcommand (command,
- last_offset, i - last_offset,
- true);
+ newcommand = create_subcommand (command,
+ last_offset, i - last_offset,
+ true);
fill_dst_range_with_zeroes (newcommand);
}
}
/* There may be an unaligned tail, so write that. */
if (end - i > 0) {
- newcommand = copy_subcommand (command, i, end - i, false);
+ newcommand = create_subcommand (command, i, end - i, false);
dst->ops->asynch_write (dst, newcommand,
(nbd_completion_callback) {
.callback = free_command,
.user_data = newcommand,
});
}
/* Free the original command since it has been split into
* subcommands and the original is no longer needed.
*/
--
2.35.1
Eric Blake
2022-Feb-21 14:52 UTC
[Libguestfs] [PATCH libnbd 2/8] copy: Rename copy_subcommand to create_subcommand
On Sun, Feb 20, 2022 at 02:13:57PM +0200, Nir Soffer wrote:> copy_subcommand creates a new command without copying the original > command. Rename the function to make this more clear. > > Signed-off-by: Nir Soffer <nsoffer at redhat.com> > --- > copy/multi-thread-copying.c | 29 ++++++++++++++--------------- > 1 file changed, 14 insertions(+), 15 deletions(-) > > if (!last_is_zero) { > /* Write the last data (if any). */ > if (i - last_offset > 0) { > - newcommand = copy_subcommand (command, > + newcommand = create_subcommand (command, > last_offset, i - last_offset, > false);Indentation needs updates here.> dst->ops->asynch_write (dst, newcommand, > (nbd_completion_callback) { > .callback = free_command, > .user_data = newcommand, > }); > } > /* Start the new zero range. */ > last_offset = i; > @@ -431,55 +430,55 @@ finished_read (void *vp, int *error) > } > } > else { > /* It's data. If the last was data too, do nothing => > * coalesce. Otherwise write the last zero range and start a > * new data. > */ > if (last_is_zero) { > /* Write the last zero range (if any). */ > if (i - last_offset > 0) { > - newcommand = copy_subcommand (command, > - last_offset, i - last_offset, > - true); > + newcommand = create_subcommand (command, > + last_offset, i - last_offset, > + true);But you got it right elsewhere. ACK. -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org