* [PATCH] ext4: extents: Remove unnecessary ‘NULL’ values from ablocks @ 2024-04-02 2:48 Li zeming 2024-04-02 3:55 ` Theodore Ts'o 2024-04-08 20:51 ` Andreas Dilger 0 siblings, 2 replies; 3+ messages in thread From: Li zeming @ 2024-04-02 2:48 UTC (permalink / raw) To: tytso, adilger.kernel; +Cc: linux-ext4, linux-kernel, Li zeming ablocks is assigned first, so it does not need to initialize the assignment. Signed-off-by: Li zeming <zeming@nfschina.com> --- fs/ext4/extents.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c index 4ab96f01a6f31..caace8c3fd3c1 100644 --- a/fs/ext4/extents.c +++ b/fs/ext4/extents.c @@ -1061,7 +1061,7 @@ static int ext4_ext_split(handle_t *handle, struct inode *inode, int i = at, k, m, a; ext4_fsblk_t newblock, oldblock; __le32 border; - ext4_fsblk_t *ablocks = NULL; /* array of allocated blocks */ + ext4_fsblk_t *ablocks; /* array of allocated blocks */ gfp_t gfp_flags = GFP_NOFS; int err = 0; size_t ext_size = 0; -- 2.18.2 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] ext4: extents: Remove unnecessary ‘NULL’ values from ablocks 2024-04-02 2:48 [PATCH] ext4: extents: Remove unnecessary ‘NULL’ values from ablocks Li zeming @ 2024-04-02 3:55 ` Theodore Ts'o 2024-04-08 20:51 ` Andreas Dilger 1 sibling, 0 replies; 3+ messages in thread From: Theodore Ts'o @ 2024-04-02 3:55 UTC (permalink / raw) To: Li zeming; +Cc: adilger.kernel, linux-ext4, linux-kernel On Tue, Apr 02, 2024 at 10:48:04AM +0800, Li zeming wrote: > ablocks is assigned first, so it does not need to initialize the > assignment. That's technically true, but the compiler is perfectly capable of optimizing it out. So it's harmless, and removing it does make the code a bit more fragile, since it needs to be set so that the cleanup code doesn't accidentally dereference an uninitialized pointer. Cheers, - Ted ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] ext4: extents: Remove unnecessary ‘NULL’ values from ablocks 2024-04-02 2:48 [PATCH] ext4: extents: Remove unnecessary ‘NULL’ values from ablocks Li zeming 2024-04-02 3:55 ` Theodore Ts'o @ 2024-04-08 20:51 ` Andreas Dilger 1 sibling, 0 replies; 3+ messages in thread From: Andreas Dilger @ 2024-04-08 20:51 UTC (permalink / raw) To: Li zeming Cc: Theodore Ts'o, Ext4 Developers List, Linux Kernel Mailing List [-- Attachment #1: Type: text/plain, Size: 2010 bytes --] On Apr 1, 2024, at 8:48 PM, Li zeming <zeming@nfschina.com> wrote: > > ablocks is assigned first, so it does not need to initialize the > assignment. While it is true that "ablocks" is currently set before use, this is happening a long way away from the variable declaration and also "ablocks" is used after the "cleanup:" label error case: cleanup: if (bh) { if (buffer_locked(bh)) unlock_buffer(bh); brelse(bh); } if (err) { /* free all allocated blocks in error case */ for (i = 0; i < depth; i++) { if (!ablocks[i]) continue; ext4_free_blocks(handle, inode, NULL, ablocks[i], 1, EXT4_FREE_BLOCKS_METADATA); } } kfree(ablocks); So there is definitely a risk that a code change in the future would introduce hard-to-debug problems, crashes, or even just spurious static code analysis warnings. My recommendation would be to keep this 1-cycle local variable initialization in place rather than spend hours or days trying to debug and fix a crash here in the future. Cheers, Andreas > > Signed-off-by: Li zeming <zeming@nfschina.com> > --- > fs/ext4/extents.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c > index 4ab96f01a6f31..caace8c3fd3c1 100644 > --- a/fs/ext4/extents.c > +++ b/fs/ext4/extents.c > @@ -1061,7 +1061,7 @@ static int ext4_ext_split(handle_t *handle, struct inode *inode, > int i = at, k, m, a; > ext4_fsblk_t newblock, oldblock; > __le32 border; > - ext4_fsblk_t *ablocks = NULL; /* array of allocated blocks */ > + ext4_fsblk_t *ablocks; /* array of allocated blocks */ > gfp_t gfp_flags = GFP_NOFS; > int err = 0; > size_t ext_size = 0; > -- > 2.18.2 > Cheers, Andreas [-- Attachment #2: Message signed with OpenPGP --] [-- Type: application/pgp-signature, Size: 873 bytes --] ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-04-08 20:51 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-04-02 2:48 [PATCH] ext4: extents: Remove unnecessary ‘NULL’ values from ablocks Li zeming 2024-04-02 3:55 ` Theodore Ts'o 2024-04-08 20:51 ` Andreas Dilger
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.