diff options
author | 2025-06-27 11:51:17 +0300 | |
---|---|---|
committer | 2025-07-21 23:58:05 +0200 | |
commit | 2fb5e56f524f7c0ca3ebda0069f8dd83b90876e5 (patch) | |
tree | d7f5ae17f49a54e4a7464092dfea181f25452cc1 | |
parent | btrfs: qgroup: avoid memory allocation if qgroups are not enabled (diff) | |
download | wireguard-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.c | 4 |
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); |