From: Filipe Manana Date: Tue, 1 Nov 2022 16:15:43 +0000 (+0000) Subject: btrfs: send: drop unnecessary backref context field initializations X-Git-Tag: v6.2-rc1~143^2~101 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=344174a1a68a55599d3a264db47d96583ff66473;p=thirdparty%2Fkernel%2Flinux.git btrfs: send: drop unnecessary backref context field initializations At find_extent_clone() we are initializing to zero the 'found_itself' and 'found' fields of the backref context before we use it but we have already initialized the structure to zeroes when we declared it on stack, so it's pointless to initialize those fields and they are unnecessarily increasing the object text size with two "mov" instructions (x86_64). Similarly make the 'extent_len' initialization more clear by using an if- -then-else instead of a double assignment to it in case the extent's end crosses the i_size boundary. Before this change: $ size fs/btrfs/send.o text data bss dec hex filename 68694 4252 16 72962 11d02 fs/btrfs/send.o After this change: $ size fs/btrfs/send.o text data bss dec hex filename 68678 4252 16 72946 11cf2 fs/btrfs/send.o Signed-off-by: Filipe Manana Signed-off-by: David Sterba --- diff --git a/fs/btrfs/send.c b/fs/btrfs/send.c index 4ce5c154f6d7e..7d289bdc6de11 100644 --- a/fs/btrfs/send.c +++ b/fs/btrfs/send.c @@ -1432,11 +1432,8 @@ static int find_extent_clone(struct send_ctx *sctx, } backref_ctx.sctx = sctx; - backref_ctx.found = 0; backref_ctx.cur_objectid = ino; backref_ctx.cur_offset = data_offset; - backref_ctx.found_itself = 0; - backref_ctx.extent_len = num_bytes; /* * The last extent of a file may be too large due to page alignment. @@ -1445,6 +1442,8 @@ static int find_extent_clone(struct send_ctx *sctx, */ if (data_offset + num_bytes >= ino_size) backref_ctx.extent_len = ino_size - data_offset; + else + backref_ctx.extent_len = num_bytes; /* * Now collect all backrefs.