Btrfs: send, build path string only once in send_hole
There's no point building the path string in each iteration of the send_hole loop, as it produces always the same string. Signed-off-by: Filipe David Borba Manana <fdmanana@gmail.com> Signed-off-by: Chris Mason <clm@fb.com>
This commit is contained in:
parent
9a40f1222a
commit
c715e155c9
@ -4436,14 +4436,14 @@ static int send_hole(struct send_ctx *sctx, u64 end)
|
|||||||
p = fs_path_alloc();
|
p = fs_path_alloc();
|
||||||
if (!p)
|
if (!p)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
ret = get_cur_path(sctx, sctx->cur_ino, sctx->cur_inode_gen, p);
|
||||||
|
if (ret < 0)
|
||||||
|
goto tlv_put_failure;
|
||||||
memset(sctx->read_buf, 0, BTRFS_SEND_READ_SIZE);
|
memset(sctx->read_buf, 0, BTRFS_SEND_READ_SIZE);
|
||||||
while (offset < end) {
|
while (offset < end) {
|
||||||
len = min_t(u64, end - offset, BTRFS_SEND_READ_SIZE);
|
len = min_t(u64, end - offset, BTRFS_SEND_READ_SIZE);
|
||||||
|
|
||||||
ret = begin_cmd(sctx, BTRFS_SEND_C_WRITE);
|
ret = begin_cmd(sctx, BTRFS_SEND_C_WRITE);
|
||||||
if (ret < 0)
|
|
||||||
break;
|
|
||||||
ret = get_cur_path(sctx, sctx->cur_ino, sctx->cur_inode_gen, p);
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
break;
|
break;
|
||||||
TLV_PUT_PATH(sctx, BTRFS_SEND_A_PATH, p);
|
TLV_PUT_PATH(sctx, BTRFS_SEND_A_PATH, p);
|
||||||
|
Loading…
Reference in New Issue
Block a user