|
Filipe Manana |
bf101e |
From: Filipe Manana <fdmanana@suse.com>
|
|
Filipe Manana |
bf101e |
Date: Thu, 29 Jul 2021 15:28:34 +0100
|
|
Filipe Manana |
bf101e |
Subject: [PATCH] btrfs: remove unnecessary NULL check for the new inode during
|
|
Filipe Manana |
bf101e |
rename exchange
|
|
Filipe Manana |
bf101e |
Git-commit: 1c167b87f4f9c89e33dcffb92a45e30f937f04d6
|
|
Filipe Manana |
bf101e |
Patch-mainline: v5.15-rc1
|
|
Filipe Manana |
bf101e |
References: bsc#1207263
|
|
Filipe Manana |
bf101e |
|
|
Filipe Manana |
bf101e |
At the very end of btrfs_rename_exchange(), in case an error happened, we
|
|
Filipe Manana |
bf101e |
are checking if 'new_inode' is NULL, but that is not needed since during a
|
|
Filipe Manana |
bf101e |
rename exchange, unlike regular renames, 'new_inode' can never be NULL,
|
|
Filipe Manana |
bf101e |
and if it were, we would have a crashed much earlier when we dereference it
|
|
Filipe Manana |
bf101e |
multiple times.
|
|
Filipe Manana |
bf101e |
|
|
Filipe Manana |
bf101e |
So remove the check because it is not necessary and because it is causing
|
|
Filipe Manana |
bf101e |
static checkers to emit a warning. I probably introduced the check by
|
|
Filipe Manana |
bf101e |
copy-pasting similar code from btrfs_rename(), where 'new_inode' can be
|
|
Filipe Manana |
bf101e |
NULL, in commit 86e8aa0e772cab ("Btrfs: unpin logs if rename exchange
|
|
Filipe Manana |
bf101e |
operation fails").
|
|
Filipe Manana |
bf101e |
|
|
Filipe Manana |
bf101e |
Reported-by: kernel test robot <lkp@intel.com>
|
|
Filipe Manana |
bf101e |
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
|
|
Filipe Manana |
bf101e |
Signed-off-by: Filipe Manana <fdmanana@suse.com>
|
|
Filipe Manana |
bf101e |
Reviewed-by: David Sterba <dsterba@suse.com>
|
|
Filipe Manana |
bf101e |
Signed-off-by: David Sterba <dsterba@suse.com>
|
|
Filipe Manana |
bf101e |
---
|
|
Filipe Manana |
bf101e |
fs/btrfs/inode.c | 3 +--
|
|
Filipe Manana |
bf101e |
1 file changed, 1 insertion(+), 2 deletions(-)
|
|
Filipe Manana |
bf101e |
|
|
Filipe Manana |
bf101e |
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
|
|
Filipe Manana |
bf101e |
index bc41d6c8d8d8..d8a1e58b4bc8 100644
|
|
Filipe Manana |
bf101e |
--- a/fs/btrfs/inode.c
|
|
Filipe Manana |
bf101e |
+++ b/fs/btrfs/inode.c
|
|
Filipe Manana |
bf101e |
@@ -9523,8 +9523,7 @@ static int btrfs_rename_exchange(struct inode *old_dir,
|
|
Filipe Manana |
bf101e |
if (btrfs_inode_in_log(BTRFS_I(old_dir), fs_info->generation) ||
|
|
Filipe Manana |
bf101e |
btrfs_inode_in_log(BTRFS_I(new_dir), fs_info->generation) ||
|
|
Filipe Manana |
bf101e |
btrfs_inode_in_log(BTRFS_I(old_inode), fs_info->generation) ||
|
|
Filipe Manana |
bf101e |
- (new_inode &&
|
|
Filipe Manana |
bf101e |
- btrfs_inode_in_log(BTRFS_I(new_inode), fs_info->generation)))
|
|
Filipe Manana |
bf101e |
+ btrfs_inode_in_log(BTRFS_I(new_inode), fs_info->generation))
|
|
Filipe Manana |
bf101e |
btrfs_set_log_full_commit(trans);
|
|
Filipe Manana |
bf101e |
|
|
Filipe Manana |
bf101e |
if (root_log_pinned) {
|
|
Filipe Manana |
bf101e |
--
|
|
Filipe Manana |
bf101e |
2.26.2
|
|
Filipe Manana |
bf101e |
|