aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDmitry Antipov <dmantipov@yandex.ru>2025-06-27 11:51:17 +0300
committerDavid Sterba <dsterba@suse.com>2025-07-21 23:58:05 +0200
commit2fb5e56f524f7c0ca3ebda0069f8dd83b90876e5 (patch)
treed7f5ae17f49a54e4a7464092dfea181f25452cc1
parentbtrfs: qgroup: avoid memory allocation if qgroups are not enabled (diff)
downloadwireguard-linux-2fb5e56f524f7c0ca3ebda0069f8dd83b90876e5.tar.xz
wireguard-linux-2fb5e56f524f7c0ca3ebda0069f8dd83b90876e5.zip
btrfs: send: avoid extra calls to strlen() in gen_unique_name()
Since 'snprintf()' returns the number of characters which would be emitted and output truncation is handled by 'ASSERT()', it should be safe to use that return value instead of the subsequent calls to 'strlen()' in 'gen_unique_name()'. This also reduces the module's text size. Before: $ size fs/btrfs/btrfs.ko text data bss dec hex filename 1897006 161571 16136 2074713 1fa859 fs/btrfs/btrfs.ko After: $ size fs/btrfs/btrfs.ko text data bss dec hex filename 1896848 161571 16136 2074555 1fa7bb fs/btrfs/btrfs.ko Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru> Reviewed-by: Filipe Manana <fdmanana@suse.com> Signed-off-by: Filipe Manana <fdmanana@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
-rw-r--r--fs/btrfs/send.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/btrfs/send.c b/fs/btrfs/send.c
index 2891ec4056c6..a045c1be49ba 100644
--- a/fs/btrfs/send.c
+++ b/fs/btrfs/send.c
@@ -1804,7 +1804,7 @@ static int gen_unique_name(struct send_ctx *sctx,
ino, gen, idx);
ASSERT(len < sizeof(tmp));
tmp_name.name = tmp;
- tmp_name.len = strlen(tmp);
+ tmp_name.len = len;
di = btrfs_lookup_dir_item(NULL, sctx->send_root,
path, BTRFS_FIRST_FREE_OBJECTID,
@@ -1843,7 +1843,7 @@ static int gen_unique_name(struct send_ctx *sctx,
break;
}
- ret = fs_path_add(dest, tmp, strlen(tmp));
+ ret = fs_path_add(dest, tmp, len);
out:
btrfs_free_path(path);