* [PATCH 0/8] btrfs: some cleanups around inode update and helpers
@ 2023-09-22 10:37 fdmanana
2023-09-22 10:37 ` [PATCH 1/8] btrfs: simplify error check condition at btrfs_dirty_inode() fdmanana
` (8 more replies)
0 siblings, 9 replies; 17+ messages in thread
From: fdmanana @ 2023-09-22 10:37 UTC (permalink / raw)
To: linux-btrfs
From: Filipe Manana <fdmanana@suse.com>
Some cleanups mostly around btrfs_update_inode(), its helpers and some
callers, mostly to remove the redundant root argument, which can be taken
from the given inode. More details in the changelogs.
Filipe Manana (8):
btrfs: simplify error check condition at btrfs_dirty_inode()
btrfs: remove noline from btrfs_update_inode()
btrfs: remove redundant root argument from btrfs_update_inode_fallback()
btrfs: remove redundant root argument from btrfs_update_inode()
btrfs: remove redundant root argument from btrfs_update_inode_item()
btrfs: remove redundant root argument from btrfs_delayed_update_inode()
btrfs: remove redundant root argument from maybe_insert_hole()
btrfs: remove redundant root argument from fixup_inode_link_count()
fs/btrfs/block-group.c | 3 +-
fs/btrfs/btrfs_inode.h | 4 +--
fs/btrfs/delayed-inode.c | 2 +-
fs/btrfs/delayed-inode.h | 1 -
fs/btrfs/file.c | 8 ++---
fs/btrfs/free-space-cache.c | 13 ++++----
fs/btrfs/inode.c | 66 ++++++++++++++++++-------------------
fs/btrfs/ioctl.c | 2 +-
fs/btrfs/reflink.c | 3 +-
fs/btrfs/transaction.c | 2 +-
fs/btrfs/tree-log.c | 32 +++++++++---------
fs/btrfs/verity.c | 4 +--
fs/btrfs/xattr.c | 4 +--
13 files changed, 68 insertions(+), 76 deletions(-)
--
2.40.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 1/8] btrfs: simplify error check condition at btrfs_dirty_inode()
2023-09-22 10:37 [PATCH 0/8] btrfs: some cleanups around inode update and helpers fdmanana
@ 2023-09-22 10:37 ` fdmanana
2023-09-22 22:00 ` Qu Wenruo
2023-09-22 10:37 ` [PATCH 2/8] btrfs: remove noline from btrfs_update_inode() fdmanana
` (7 subsequent siblings)
8 siblings, 1 reply; 17+ messages in thread
From: fdmanana @ 2023-09-22 10:37 UTC (permalink / raw)
To: linux-btrfs
From: Filipe Manana <fdmanana@suse.com>
The following condition at btrfs_dirty_inode() is redundant:
if (ret && (ret == -ENOSPC || ret == -EDQUOT))
The first check for a non-zero 'ret' value is pointless, we can simplify
this to simply:
if (ret == -ENOSPC || ret == -EDQUOT)
Not only this makes it easier to read, it also slightly reduces the text
size of the btrfs kernel module:
$ size fs/btrfs/btrfs.ko.before
text data bss dec hex filename
1641400 168265 16864 1826529 1bdee1 fs/btrfs/btrfs.ko.before
$ size fs/btrfs/btrfs.ko.after
text data bss dec hex filename
1641224 168181 16864 1826269 1bdddd fs/btrfs/btrfs.ko.after
Signed-off-by: Filipe Manana <fdmanana@suse.com>
---
fs/btrfs/inode.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 514d2e8a4f52..f16dfeabeaf0 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -6011,7 +6011,7 @@ static int btrfs_dirty_inode(struct btrfs_inode *inode)
return PTR_ERR(trans);
ret = btrfs_update_inode(trans, root, inode);
- if (ret && (ret == -ENOSPC || ret == -EDQUOT)) {
+ if (ret == -ENOSPC || ret == -EDQUOT) {
/* whoops, lets try again with the full transaction */
btrfs_end_transaction(trans);
trans = btrfs_start_transaction(root, 1);
--
2.40.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 2/8] btrfs: remove noline from btrfs_update_inode()
2023-09-22 10:37 [PATCH 0/8] btrfs: some cleanups around inode update and helpers fdmanana
2023-09-22 10:37 ` [PATCH 1/8] btrfs: simplify error check condition at btrfs_dirty_inode() fdmanana
@ 2023-09-22 10:37 ` fdmanana
2023-09-22 22:00 ` Qu Wenruo
2023-09-22 10:37 ` [PATCH 3/8] btrfs: remove redundant root argument from btrfs_update_inode_fallback() fdmanana
` (6 subsequent siblings)
8 siblings, 1 reply; 17+ messages in thread
From: fdmanana @ 2023-09-22 10:37 UTC (permalink / raw)
To: linux-btrfs
From: Filipe Manana <fdmanana@suse.com>
The noinline attribute of btrfs_update_inode() is pointless as the
function is exported and widely used, so remove it.
Signed-off-by: Filipe Manana <fdmanana@suse.com>
---
fs/btrfs/inode.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index f16dfeabeaf0..fb7d7d0077f0 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -4001,9 +4001,9 @@ static noinline int btrfs_update_inode_item(struct btrfs_trans_handle *trans,
/*
* copy everything in the in-memory inode into the btree.
*/
-noinline int btrfs_update_inode(struct btrfs_trans_handle *trans,
- struct btrfs_root *root,
- struct btrfs_inode *inode)
+int btrfs_update_inode(struct btrfs_trans_handle *trans,
+ struct btrfs_root *root,
+ struct btrfs_inode *inode)
{
struct btrfs_fs_info *fs_info = root->fs_info;
int ret;
--
2.40.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 3/8] btrfs: remove redundant root argument from btrfs_update_inode_fallback()
2023-09-22 10:37 [PATCH 0/8] btrfs: some cleanups around inode update and helpers fdmanana
2023-09-22 10:37 ` [PATCH 1/8] btrfs: simplify error check condition at btrfs_dirty_inode() fdmanana
2023-09-22 10:37 ` [PATCH 2/8] btrfs: remove noline from btrfs_update_inode() fdmanana
@ 2023-09-22 10:37 ` fdmanana
2023-09-22 10:37 ` [PATCH 4/8] btrfs: remove redundant root argument from btrfs_update_inode() fdmanana
` (5 subsequent siblings)
8 siblings, 0 replies; 17+ messages in thread
From: fdmanana @ 2023-09-22 10:37 UTC (permalink / raw)
To: linux-btrfs
From: Filipe Manana <fdmanana@suse.com>
The root argument for btrfs_update_inode_fallback() always matches the
root of the given inode, so remove the root argument and get it from the
inode argument.
Signed-off-by: Filipe Manana <fdmanana@suse.com>
---
fs/btrfs/btrfs_inode.h | 2 +-
fs/btrfs/inode.c | 12 ++++++------
fs/btrfs/transaction.c | 2 +-
3 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/fs/btrfs/btrfs_inode.h b/fs/btrfs/btrfs_inode.h
index 4311ac9ca0ae..d12556627cce 100644
--- a/fs/btrfs/btrfs_inode.h
+++ b/fs/btrfs/btrfs_inode.h
@@ -484,7 +484,7 @@ struct extent_map *btrfs_get_extent(struct btrfs_inode *inode,
int btrfs_update_inode(struct btrfs_trans_handle *trans,
struct btrfs_root *root, struct btrfs_inode *inode);
int btrfs_update_inode_fallback(struct btrfs_trans_handle *trans,
- struct btrfs_root *root, struct btrfs_inode *inode);
+ struct btrfs_inode *inode);
int btrfs_orphan_add(struct btrfs_trans_handle *trans, struct btrfs_inode *inode);
int btrfs_orphan_cleanup(struct btrfs_root *root);
int btrfs_cont_expand(struct btrfs_inode *inode, loff_t oldsize, loff_t size);
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index fb7d7d0077f0..44836d1f99a9 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -3074,7 +3074,7 @@ int btrfs_finish_one_ordered(struct btrfs_ordered_extent *ordered_extent)
goto out;
}
trans->block_rsv = &inode->block_rsv;
- ret = btrfs_update_inode_fallback(trans, root, inode);
+ ret = btrfs_update_inode_fallback(trans, inode);
if (ret) /* -ENOMEM or corruption */
btrfs_abort_transaction(trans, ret);
goto out;
@@ -3144,7 +3144,7 @@ int btrfs_finish_one_ordered(struct btrfs_ordered_extent *ordered_extent)
&cached_state);
btrfs_inode_safe_disk_i_size_write(inode, 0);
- ret = btrfs_update_inode_fallback(trans, root, inode);
+ ret = btrfs_update_inode_fallback(trans, inode);
if (ret) { /* -ENOMEM or corruption */
btrfs_abort_transaction(trans, ret);
goto out;
@@ -4030,13 +4030,13 @@ int btrfs_update_inode(struct btrfs_trans_handle *trans,
}
int btrfs_update_inode_fallback(struct btrfs_trans_handle *trans,
- struct btrfs_root *root, struct btrfs_inode *inode)
+ struct btrfs_inode *inode)
{
int ret;
- ret = btrfs_update_inode(trans, root, inode);
+ ret = btrfs_update_inode(trans, inode->root, inode);
if (ret == -ENOSPC)
- return btrfs_update_inode_item(trans, root, inode);
+ return btrfs_update_inode_item(trans, inode->root, inode);
return ret;
}
@@ -4316,7 +4316,7 @@ static int btrfs_unlink_subvol(struct btrfs_trans_handle *trans,
btrfs_i_size_write(dir, dir->vfs_inode.i_size - fname.disk_name.len * 2);
inode_inc_iversion(&dir->vfs_inode);
dir->vfs_inode.i_mtime = inode_set_ctime_current(&dir->vfs_inode);
- ret = btrfs_update_inode_fallback(trans, root, dir);
+ ret = btrfs_update_inode_fallback(trans, dir);
if (ret)
btrfs_abort_transaction(trans, ret);
out:
diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c
index 3f9f933039c6..240dad25fa16 100644
--- a/fs/btrfs/transaction.c
+++ b/fs/btrfs/transaction.c
@@ -1942,7 +1942,7 @@ static noinline int create_pending_snapshot(struct btrfs_trans_handle *trans,
btrfs_i_size_write(BTRFS_I(parent_inode), parent_inode->i_size +
fname.disk_name.len * 2);
parent_inode->i_mtime = inode_set_ctime_current(parent_inode);
- ret = btrfs_update_inode_fallback(trans, parent_root, BTRFS_I(parent_inode));
+ ret = btrfs_update_inode_fallback(trans, BTRFS_I(parent_inode));
if (ret) {
btrfs_abort_transaction(trans, ret);
goto fail;
--
2.40.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 4/8] btrfs: remove redundant root argument from btrfs_update_inode()
2023-09-22 10:37 [PATCH 0/8] btrfs: some cleanups around inode update and helpers fdmanana
` (2 preceding siblings ...)
2023-09-22 10:37 ` [PATCH 3/8] btrfs: remove redundant root argument from btrfs_update_inode_fallback() fdmanana
@ 2023-09-22 10:37 ` fdmanana
2023-09-22 22:04 ` Qu Wenruo
2023-09-22 10:37 ` [PATCH 5/8] btrfs: remove redundant root argument from btrfs_update_inode_item() fdmanana
` (4 subsequent siblings)
8 siblings, 1 reply; 17+ messages in thread
From: fdmanana @ 2023-09-22 10:37 UTC (permalink / raw)
To: linux-btrfs
From: Filipe Manana <fdmanana@suse.com>
The root argument for btrfs_update_inode() always matches the root of the
given inode, so remove the root argument and get it from the inode
argument.
Signed-off-by: Filipe Manana <fdmanana@suse.com>
---
fs/btrfs/block-group.c | 3 +--
fs/btrfs/btrfs_inode.h | 2 +-
fs/btrfs/file.c | 8 ++++----
fs/btrfs/free-space-cache.c | 13 ++++++-------
fs/btrfs/inode.c | 34 +++++++++++++++++-----------------
fs/btrfs/ioctl.c | 2 +-
fs/btrfs/reflink.c | 3 +--
fs/btrfs/tree-log.c | 12 ++++++------
fs/btrfs/verity.c | 4 ++--
fs/btrfs/xattr.c | 4 ++--
10 files changed, 41 insertions(+), 44 deletions(-)
diff --git a/fs/btrfs/block-group.c b/fs/btrfs/block-group.c
index 2b9aaeefaf76..6e2a4000bfe0 100644
--- a/fs/btrfs/block-group.c
+++ b/fs/btrfs/block-group.c
@@ -3051,7 +3051,6 @@ static int cache_save_setup(struct btrfs_block_group *block_group,
struct btrfs_path *path)
{
struct btrfs_fs_info *fs_info = block_group->fs_info;
- struct btrfs_root *root = fs_info->tree_root;
struct inode *inode = NULL;
struct extent_changeset *data_reserved = NULL;
u64 alloc_hint = 0;
@@ -3103,7 +3102,7 @@ static int cache_save_setup(struct btrfs_block_group *block_group,
* time.
*/
BTRFS_I(inode)->generation = 0;
- ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
+ ret = btrfs_update_inode(trans, BTRFS_I(inode));
if (ret) {
/*
* So theoretically we could recover from this, simply set the
diff --git a/fs/btrfs/btrfs_inode.h b/fs/btrfs/btrfs_inode.h
index d12556627cce..f2c928345d53 100644
--- a/fs/btrfs/btrfs_inode.h
+++ b/fs/btrfs/btrfs_inode.h
@@ -482,7 +482,7 @@ struct extent_map *btrfs_get_extent(struct btrfs_inode *inode,
struct page *page, size_t pg_offset,
u64 start, u64 end);
int btrfs_update_inode(struct btrfs_trans_handle *trans,
- struct btrfs_root *root, struct btrfs_inode *inode);
+ struct btrfs_inode *inode);
int btrfs_update_inode_fallback(struct btrfs_trans_handle *trans,
struct btrfs_inode *inode);
int btrfs_orphan_add(struct btrfs_trans_handle *trans, struct btrfs_inode *inode);
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
index 7d6652941210..e847043defce 100644
--- a/fs/btrfs/file.c
+++ b/fs/btrfs/file.c
@@ -2460,7 +2460,7 @@ int btrfs_replace_file_extents(struct btrfs_inode *inode,
if (!extent_info || extent_info->update_times)
inode->vfs_inode.i_mtime = inode_set_ctime_current(&inode->vfs_inode);
- ret = btrfs_update_inode(trans, root, inode);
+ ret = btrfs_update_inode(trans, inode);
if (ret)
break;
@@ -2700,7 +2700,7 @@ static int btrfs_punch_hole(struct file *file, loff_t offset, loff_t len)
ASSERT(trans != NULL);
inode_inc_iversion(inode);
inode->i_mtime = inode_set_ctime_current(inode);
- ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
+ ret = btrfs_update_inode(trans, BTRFS_I(inode));
updated_inode = true;
btrfs_end_transaction(trans);
btrfs_btree_balance_dirty(fs_info);
@@ -2726,7 +2726,7 @@ static int btrfs_punch_hole(struct file *file, loff_t offset, loff_t len)
} else {
int ret2;
- ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
+ ret = btrfs_update_inode(trans, BTRFS_I(inode));
ret2 = btrfs_end_transaction(trans);
if (!ret)
ret = ret2;
@@ -2793,7 +2793,7 @@ static int btrfs_fallocate_update_isize(struct inode *inode,
inode_set_ctime_current(inode);
i_size_write(inode, end);
btrfs_inode_safe_disk_i_size_write(BTRFS_I(inode), 0);
- ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
+ ret = btrfs_update_inode(trans, BTRFS_I(inode));
ret2 = btrfs_end_transaction(trans);
return ret ? ret : ret2;
diff --git a/fs/btrfs/free-space-cache.c b/fs/btrfs/free-space-cache.c
index acb8ef3dd6b0..6f93c9a2c3e3 100644
--- a/fs/btrfs/free-space-cache.c
+++ b/fs/btrfs/free-space-cache.c
@@ -359,7 +359,7 @@ int btrfs_truncate_free_space_cache(struct btrfs_trans_handle *trans,
if (ret)
goto fail;
- ret = btrfs_update_inode(trans, root, inode);
+ ret = btrfs_update_inode(trans, inode);
fail:
if (locked)
@@ -1326,7 +1326,7 @@ static int __btrfs_wait_cache_io(struct btrfs_root *root,
"failed to write free space cache for block group %llu error %d",
block_group->start, ret);
}
- btrfs_update_inode(trans, root, BTRFS_I(inode));
+ btrfs_update_inode(trans, BTRFS_I(inode));
if (block_group) {
/* the dirty list is protected by the dirty_bgs_lock */
@@ -1367,7 +1367,6 @@ int btrfs_wait_cache_io(struct btrfs_trans_handle *trans,
/*
* Write out cached info to an inode.
*
- * @root: root the inode belongs to
* @inode: freespace inode we are writing out
* @ctl: free space cache we are going to write out
* @block_group: block_group for this cache if it belongs to a block_group
@@ -1378,7 +1377,7 @@ int btrfs_wait_cache_io(struct btrfs_trans_handle *trans,
* on mount. This will return 0 if it was successful in writing the cache out,
* or an errno if it was not.
*/
-static int __btrfs_write_out_cache(struct btrfs_root *root, struct inode *inode,
+static int __btrfs_write_out_cache(struct inode *inode,
struct btrfs_free_space_ctl *ctl,
struct btrfs_block_group *block_group,
struct btrfs_io_ctl *io_ctl,
@@ -1511,7 +1510,7 @@ static int __btrfs_write_out_cache(struct btrfs_root *root, struct inode *inode,
invalidate_inode_pages2(inode->i_mapping);
BTRFS_I(inode)->generation = 0;
}
- btrfs_update_inode(trans, root, BTRFS_I(inode));
+ btrfs_update_inode(trans, BTRFS_I(inode));
if (must_iput)
iput(inode);
return ret;
@@ -1537,8 +1536,8 @@ int btrfs_write_out_cache(struct btrfs_trans_handle *trans,
if (IS_ERR(inode))
return 0;
- ret = __btrfs_write_out_cache(fs_info->tree_root, inode, ctl,
- block_group, &block_group->io_ctl, trans);
+ ret = __btrfs_write_out_cache(inode, ctl, block_group,
+ &block_group->io_ctl, trans);
if (ret) {
btrfs_debug(fs_info,
"failed to write free space cache for block group %llu error %d",
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 44836d1f99a9..13a97d3ce34a 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -671,7 +671,7 @@ static noinline int cow_file_range_inline(struct btrfs_inode *inode, u64 size,
}
btrfs_update_inode_bytes(inode, size, drop_args.bytes_found);
- ret = btrfs_update_inode(trans, root, inode);
+ ret = btrfs_update_inode(trans, inode);
if (ret && ret != -ENOSPC) {
btrfs_abort_transaction(trans, ret);
goto out;
@@ -4002,9 +4002,9 @@ static noinline int btrfs_update_inode_item(struct btrfs_trans_handle *trans,
* copy everything in the in-memory inode into the btree.
*/
int btrfs_update_inode(struct btrfs_trans_handle *trans,
- struct btrfs_root *root,
struct btrfs_inode *inode)
{
+ struct btrfs_root *root = inode->root;
struct btrfs_fs_info *fs_info = root->fs_info;
int ret;
@@ -4034,7 +4034,7 @@ int btrfs_update_inode_fallback(struct btrfs_trans_handle *trans,
{
int ret;
- ret = btrfs_update_inode(trans, inode->root, inode);
+ ret = btrfs_update_inode(trans, inode);
if (ret == -ENOSPC)
return btrfs_update_inode_item(trans, inode->root, inode);
return ret;
@@ -4143,7 +4143,7 @@ static int __btrfs_unlink_inode(struct btrfs_trans_handle *trans,
inode_inc_iversion(&dir->vfs_inode);
inode_set_ctime_current(&inode->vfs_inode);
dir->vfs_inode.i_mtime = inode_set_ctime_current(&dir->vfs_inode);
- ret = btrfs_update_inode(trans, root, dir);
+ ret = btrfs_update_inode(trans, dir);
out:
return ret;
}
@@ -4157,7 +4157,7 @@ int btrfs_unlink_inode(struct btrfs_trans_handle *trans,
ret = __btrfs_unlink_inode(trans, dir, inode, name, NULL);
if (!ret) {
drop_nlink(&inode->vfs_inode);
- ret = btrfs_update_inode(trans, inode->root, inode);
+ ret = btrfs_update_inode(trans, inode);
}
return ret;
}
@@ -4843,7 +4843,7 @@ static int maybe_insert_hole(struct btrfs_root *root, struct btrfs_inode *inode,
btrfs_abort_transaction(trans, ret);
} else {
btrfs_update_inode_bytes(inode, 0, drop_args.bytes_found);
- btrfs_update_inode(trans, root, inode);
+ btrfs_update_inode(trans, inode);
}
btrfs_end_transaction(trans);
return ret;
@@ -4994,7 +4994,7 @@ static int btrfs_setsize(struct inode *inode, struct iattr *attr)
i_size_write(inode, newsize);
btrfs_inode_safe_disk_i_size_write(BTRFS_I(inode), 0);
pagecache_isize_extended(inode, oldsize, newsize);
- ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
+ ret = btrfs_update_inode(trans, BTRFS_I(inode));
btrfs_drew_write_unlock(&root->snapshot_lock);
btrfs_end_transaction(trans);
} else {
@@ -6010,7 +6010,7 @@ static int btrfs_dirty_inode(struct btrfs_inode *inode)
if (IS_ERR(trans))
return PTR_ERR(trans);
- ret = btrfs_update_inode(trans, root, inode);
+ ret = btrfs_update_inode(trans, inode);
if (ret == -ENOSPC || ret == -EDQUOT) {
/* whoops, lets try again with the full transaction */
btrfs_end_transaction(trans);
@@ -6018,7 +6018,7 @@ static int btrfs_dirty_inode(struct btrfs_inode *inode)
if (IS_ERR(trans))
return PTR_ERR(trans);
- ret = btrfs_update_inode(trans, root, inode);
+ ret = btrfs_update_inode(trans, inode);
}
btrfs_end_transaction(trans);
if (inode->delayed_node)
@@ -6457,7 +6457,7 @@ int btrfs_add_link(struct btrfs_trans_handle *trans,
parent_inode->vfs_inode.i_mtime =
inode_set_ctime_current(&parent_inode->vfs_inode);
- ret = btrfs_update_inode(trans, root, parent_inode);
+ ret = btrfs_update_inode(trans, parent_inode);
if (ret)
btrfs_abort_transaction(trans, ret);
return ret;
@@ -6608,7 +6608,7 @@ static int btrfs_link(struct dentry *old_dentry, struct inode *dir,
} else {
struct dentry *parent = dentry->d_parent;
- err = btrfs_update_inode(trans, root, BTRFS_I(inode));
+ err = btrfs_update_inode(trans, BTRFS_I(inode));
if (err)
goto fail;
if (inode->i_nlink == 1) {
@@ -8349,7 +8349,7 @@ static int btrfs_truncate(struct btrfs_inode *inode, bool skip_writeback)
if (ret != -ENOSPC && ret != -EAGAIN)
break;
- ret = btrfs_update_inode(trans, root, inode);
+ ret = btrfs_update_inode(trans, inode);
if (ret)
break;
@@ -8402,7 +8402,7 @@ static int btrfs_truncate(struct btrfs_inode *inode, bool skip_writeback)
int ret2;
trans->block_rsv = &fs_info->trans_block_rsv;
- ret2 = btrfs_update_inode(trans, root, inode);
+ ret2 = btrfs_update_inode(trans, inode);
if (ret2 && !ret)
ret = ret2;
@@ -8833,7 +8833,7 @@ static int btrfs_rename_exchange(struct inode *old_dir,
BTRFS_I(old_dentry->d_inode),
old_name, &old_rename_ctx);
if (!ret)
- ret = btrfs_update_inode(trans, root, BTRFS_I(old_inode));
+ ret = btrfs_update_inode(trans, BTRFS_I(old_inode));
}
if (ret) {
btrfs_abort_transaction(trans, ret);
@@ -8848,7 +8848,7 @@ static int btrfs_rename_exchange(struct inode *old_dir,
BTRFS_I(new_dentry->d_inode),
new_name, &new_rename_ctx);
if (!ret)
- ret = btrfs_update_inode(trans, dest, BTRFS_I(new_inode));
+ ret = btrfs_update_inode(trans, BTRFS_I(new_inode));
}
if (ret) {
btrfs_abort_transaction(trans, ret);
@@ -9093,7 +9093,7 @@ static int btrfs_rename(struct mnt_idmap *idmap,
BTRFS_I(d_inode(old_dentry)),
&old_fname.disk_name, &rename_ctx);
if (!ret)
- ret = btrfs_update_inode(trans, root, BTRFS_I(old_inode));
+ ret = btrfs_update_inode(trans, BTRFS_I(old_inode));
}
if (ret) {
btrfs_abort_transaction(trans, ret);
@@ -9649,7 +9649,7 @@ static int __btrfs_prealloc_file_range(struct inode *inode, int mode,
btrfs_inode_safe_disk_i_size_write(BTRFS_I(inode), 0);
}
- ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
+ ret = btrfs_update_inode(trans, BTRFS_I(inode));
if (ret) {
btrfs_abort_transaction(trans, ret);
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index 018ea98b239a..24eae7c2b3ae 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -385,7 +385,7 @@ int btrfs_fileattr_set(struct mnt_idmap *idmap,
btrfs_sync_inode_flags_to_i_flags(inode);
inode_inc_iversion(inode);
inode_set_ctime_current(inode);
- ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
+ ret = btrfs_update_inode(trans, BTRFS_I(inode));
out_end_trans:
btrfs_end_transaction(trans);
diff --git a/fs/btrfs/reflink.c b/fs/btrfs/reflink.c
index 65d2bd6910f2..fabd856e5079 100644
--- a/fs/btrfs/reflink.c
+++ b/fs/btrfs/reflink.c
@@ -25,7 +25,6 @@ static int clone_finish_inode_update(struct btrfs_trans_handle *trans,
const u64 olen,
int no_time_update)
{
- struct btrfs_root *root = BTRFS_I(inode)->root;
int ret;
inode_inc_iversion(inode);
@@ -43,7 +42,7 @@ static int clone_finish_inode_update(struct btrfs_trans_handle *trans,
btrfs_inode_safe_disk_i_size_write(BTRFS_I(inode), 0);
}
- ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
+ ret = btrfs_update_inode(trans, BTRFS_I(inode));
if (ret) {
btrfs_abort_transaction(trans, ret);
btrfs_end_transaction(trans);
diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c
index 595982434216..a7bba3d61e55 100644
--- a/fs/btrfs/tree-log.c
+++ b/fs/btrfs/tree-log.c
@@ -889,7 +889,7 @@ static noinline int replay_one_extent(struct btrfs_trans_handle *trans,
update_inode:
btrfs_update_inode_bytes(BTRFS_I(inode), nbytes, drop_args.bytes_found);
- ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
+ ret = btrfs_update_inode(trans, BTRFS_I(inode));
out:
iput(inode);
return ret;
@@ -1444,7 +1444,7 @@ static noinline int add_inode_ref(struct btrfs_trans_handle *trans,
if (ret)
goto out;
- ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
+ ret = btrfs_update_inode(trans, BTRFS_I(inode));
if (ret)
goto out;
}
@@ -1622,7 +1622,7 @@ static noinline int fixup_inode_link_count(struct btrfs_trans_handle *trans,
if (nlink != inode->i_nlink) {
set_nlink(inode, nlink);
- ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
+ ret = btrfs_update_inode(trans, BTRFS_I(inode));
if (ret)
goto out;
}
@@ -1731,7 +1731,7 @@ static noinline int link_to_fixup_dir(struct btrfs_trans_handle *trans,
set_nlink(inode, 1);
else
inc_nlink(inode);
- ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
+ ret = btrfs_update_inode(trans, BTRFS_I(inode));
} else if (ret == -EEXIST) {
ret = 0;
}
@@ -1938,7 +1938,7 @@ static noinline int replay_one_name(struct btrfs_trans_handle *trans,
out:
if (!ret && update_size) {
btrfs_i_size_write(BTRFS_I(dir), dir->i_size + name.len * 2);
- ret = btrfs_update_inode(trans, root, BTRFS_I(dir));
+ ret = btrfs_update_inode(trans, BTRFS_I(dir));
}
kfree(name.name);
iput(dir);
@@ -2482,7 +2482,7 @@ static int replay_one_buffer(struct btrfs_root *log, struct extent_buffer *eb,
drop_args.bytes_found);
/* Update the inode's nbytes. */
ret = btrfs_update_inode(wc->trans,
- root, BTRFS_I(inode));
+ BTRFS_I(inode));
}
iput(inode);
if (ret)
diff --git a/fs/btrfs/verity.c b/fs/btrfs/verity.c
index 744f4f4d4c68..66e2270b0dae 100644
--- a/fs/btrfs/verity.c
+++ b/fs/btrfs/verity.c
@@ -487,7 +487,7 @@ static int rollback_verity(struct btrfs_inode *inode)
}
inode->ro_flags &= ~BTRFS_INODE_RO_VERITY;
btrfs_sync_inode_flags_to_i_flags(&inode->vfs_inode);
- ret = btrfs_update_inode(trans, root, inode);
+ ret = btrfs_update_inode(trans, inode);
if (ret) {
btrfs_abort_transaction(trans, ret);
goto out;
@@ -554,7 +554,7 @@ static int finish_verity(struct btrfs_inode *inode, const void *desc,
}
inode->ro_flags |= BTRFS_INODE_RO_VERITY;
btrfs_sync_inode_flags_to_i_flags(&inode->vfs_inode);
- ret = btrfs_update_inode(trans, root, inode);
+ ret = btrfs_update_inode(trans, inode);
if (ret)
goto end_trans;
ret = del_orphan(trans, inode);
diff --git a/fs/btrfs/xattr.c b/fs/btrfs/xattr.c
index b906f809650e..76ff93b3eb27 100644
--- a/fs/btrfs/xattr.c
+++ b/fs/btrfs/xattr.c
@@ -265,7 +265,7 @@ int btrfs_setxattr_trans(struct inode *inode, const char *name,
inode_inc_iversion(inode);
inode_set_ctime_current(inode);
- ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
+ ret = btrfs_update_inode(trans, BTRFS_I(inode));
if (ret)
btrfs_abort_transaction(trans, ret);
out:
@@ -408,7 +408,7 @@ static int btrfs_xattr_handler_set_prop(const struct xattr_handler *handler,
if (!ret) {
inode_inc_iversion(inode);
inode_set_ctime_current(inode);
- ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
+ ret = btrfs_update_inode(trans, BTRFS_I(inode));
if (ret)
btrfs_abort_transaction(trans, ret);
}
--
2.40.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 5/8] btrfs: remove redundant root argument from btrfs_update_inode_item()
2023-09-22 10:37 [PATCH 0/8] btrfs: some cleanups around inode update and helpers fdmanana
` (3 preceding siblings ...)
2023-09-22 10:37 ` [PATCH 4/8] btrfs: remove redundant root argument from btrfs_update_inode() fdmanana
@ 2023-09-22 10:37 ` fdmanana
2023-09-22 22:06 ` Qu Wenruo
2023-09-22 10:37 ` [PATCH 6/8] btrfs: remove redundant root argument from btrfs_delayed_update_inode() fdmanana
` (3 subsequent siblings)
8 siblings, 1 reply; 17+ messages in thread
From: fdmanana @ 2023-09-22 10:37 UTC (permalink / raw)
To: linux-btrfs
From: Filipe Manana <fdmanana@suse.com>
The root argument for btrfs_update_inode_item() always matches the root of
the given inode, so remove the root argument and get it from the inode
argument.
Signed-off-by: Filipe Manana <fdmanana@suse.com>
---
fs/btrfs/inode.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 13a97d3ce34a..c4b5d4047c5d 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -3966,8 +3966,7 @@ static void fill_inode_item(struct btrfs_trans_handle *trans,
* copy everything in the in-memory inode into the btree.
*/
static noinline int btrfs_update_inode_item(struct btrfs_trans_handle *trans,
- struct btrfs_root *root,
- struct btrfs_inode *inode)
+ struct btrfs_inode *inode)
{
struct btrfs_inode_item *inode_item;
struct btrfs_path *path;
@@ -3978,7 +3977,7 @@ static noinline int btrfs_update_inode_item(struct btrfs_trans_handle *trans,
if (!path)
return -ENOMEM;
- ret = btrfs_lookup_inode(trans, root, path, &inode->location, 1);
+ ret = btrfs_lookup_inode(trans, inode->root, path, &inode->location, 1);
if (ret) {
if (ret > 0)
ret = -ENOENT;
@@ -4026,7 +4025,7 @@ int btrfs_update_inode(struct btrfs_trans_handle *trans,
return ret;
}
- return btrfs_update_inode_item(trans, root, inode);
+ return btrfs_update_inode_item(trans, inode);
}
int btrfs_update_inode_fallback(struct btrfs_trans_handle *trans,
@@ -4036,7 +4035,7 @@ int btrfs_update_inode_fallback(struct btrfs_trans_handle *trans,
ret = btrfs_update_inode(trans, inode);
if (ret == -ENOSPC)
- return btrfs_update_inode_item(trans, inode->root, inode);
+ return btrfs_update_inode_item(trans, inode);
return ret;
}
--
2.40.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 6/8] btrfs: remove redundant root argument from btrfs_delayed_update_inode()
2023-09-22 10:37 [PATCH 0/8] btrfs: some cleanups around inode update and helpers fdmanana
` (4 preceding siblings ...)
2023-09-22 10:37 ` [PATCH 5/8] btrfs: remove redundant root argument from btrfs_update_inode_item() fdmanana
@ 2023-09-22 10:37 ` fdmanana
2023-09-22 22:08 ` Qu Wenruo
2023-09-22 10:37 ` [PATCH 7/8] btrfs: remove redundant root argument from maybe_insert_hole() fdmanana
` (2 subsequent siblings)
8 siblings, 1 reply; 17+ messages in thread
From: fdmanana @ 2023-09-22 10:37 UTC (permalink / raw)
To: linux-btrfs
From: Filipe Manana <fdmanana@suse.com>
The root argument for btrfs_delayed_update_inode() always matches the root
of the given inode, so remove the root argument and get it from the inode
argument.
Signed-off-by: Filipe Manana <fdmanana@suse.com>
---
fs/btrfs/delayed-inode.c | 2 +-
fs/btrfs/delayed-inode.h | 1 -
fs/btrfs/inode.c | 2 +-
3 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/fs/btrfs/delayed-inode.c b/fs/btrfs/delayed-inode.c
index 8ba045ae1d75..35d7616615c1 100644
--- a/fs/btrfs/delayed-inode.c
+++ b/fs/btrfs/delayed-inode.c
@@ -1913,9 +1913,9 @@ int btrfs_fill_inode(struct inode *inode, u32 *rdev)
}
int btrfs_delayed_update_inode(struct btrfs_trans_handle *trans,
- struct btrfs_root *root,
struct btrfs_inode *inode)
{
+ struct btrfs_root *root = inode->root;
struct btrfs_delayed_node *delayed_node;
int ret = 0;
diff --git a/fs/btrfs/delayed-inode.h b/fs/btrfs/delayed-inode.h
index dc1085b2a397..d050e572c7f9 100644
--- a/fs/btrfs/delayed-inode.h
+++ b/fs/btrfs/delayed-inode.h
@@ -135,7 +135,6 @@ int btrfs_commit_inode_delayed_inode(struct btrfs_inode *inode);
int btrfs_delayed_update_inode(struct btrfs_trans_handle *trans,
- struct btrfs_root *root,
struct btrfs_inode *inode);
int btrfs_fill_inode(struct inode *inode, u32 *rdev);
int btrfs_delayed_delete_inode_ref(struct btrfs_inode *inode);
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index c4b5d4047c5d..54647b7fb600 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -4019,7 +4019,7 @@ int btrfs_update_inode(struct btrfs_trans_handle *trans,
&& !test_bit(BTRFS_FS_LOG_RECOVERING, &fs_info->flags)) {
btrfs_update_root_times(trans, root);
- ret = btrfs_delayed_update_inode(trans, root, inode);
+ ret = btrfs_delayed_update_inode(trans, inode);
if (!ret)
btrfs_set_inode_last_trans(trans, inode);
return ret;
--
2.40.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 7/8] btrfs: remove redundant root argument from maybe_insert_hole()
2023-09-22 10:37 [PATCH 0/8] btrfs: some cleanups around inode update and helpers fdmanana
` (5 preceding siblings ...)
2023-09-22 10:37 ` [PATCH 6/8] btrfs: remove redundant root argument from btrfs_delayed_update_inode() fdmanana
@ 2023-09-22 10:37 ` fdmanana
2023-09-22 22:09 ` Qu Wenruo
2023-09-22 10:37 ` [PATCH 8/8] btrfs: remove redundant root argument from fixup_inode_link_count() fdmanana
2023-09-22 13:48 ` [PATCH 0/8] btrfs: some cleanups around inode update and helpers David Sterba
8 siblings, 1 reply; 17+ messages in thread
From: fdmanana @ 2023-09-22 10:37 UTC (permalink / raw)
To: linux-btrfs
From: Filipe Manana <fdmanana@suse.com>
The root argument for maybe_insert_hole() always matches the root of the
given inode, so remove the root argument and get it from the inode
argument.
Signed-off-by: Filipe Manana <fdmanana@suse.com>
---
fs/btrfs/inode.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 54647b7fb600..52576deda654 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -4800,9 +4800,9 @@ int btrfs_truncate_block(struct btrfs_inode *inode, loff_t from, loff_t len,
return ret;
}
-static int maybe_insert_hole(struct btrfs_root *root, struct btrfs_inode *inode,
- u64 offset, u64 len)
+static int maybe_insert_hole(struct btrfs_inode *inode, u64 offset, u64 len)
{
+ struct btrfs_root *root = inode->root;
struct btrfs_fs_info *fs_info = root->fs_info;
struct btrfs_trans_handle *trans;
struct btrfs_drop_extents_args drop_args = { 0 };
@@ -4898,8 +4898,7 @@ int btrfs_cont_expand(struct btrfs_inode *inode, loff_t oldsize, loff_t size)
if (!test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) {
struct extent_map *hole_em;
- err = maybe_insert_hole(root, inode, cur_offset,
- hole_size);
+ err = maybe_insert_hole(inode, cur_offset, hole_size);
if (err)
break;
--
2.40.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 8/8] btrfs: remove redundant root argument from fixup_inode_link_count()
2023-09-22 10:37 [PATCH 0/8] btrfs: some cleanups around inode update and helpers fdmanana
` (6 preceding siblings ...)
2023-09-22 10:37 ` [PATCH 7/8] btrfs: remove redundant root argument from maybe_insert_hole() fdmanana
@ 2023-09-22 10:37 ` fdmanana
2023-09-22 22:11 ` Qu Wenruo
2023-09-22 13:48 ` [PATCH 0/8] btrfs: some cleanups around inode update and helpers David Sterba
8 siblings, 1 reply; 17+ messages in thread
From: fdmanana @ 2023-09-22 10:37 UTC (permalink / raw)
To: linux-btrfs
From: Filipe Manana <fdmanana@suse.com>
The root argument for fixup_inode_link_count() always matches the root of
the given inode, so remove the root argument and get it from the inode
argument. This also applies to the helpers count_inode_extrefs() and
count_inode_refs() used by fixup_inode_link_count() - they don't need the
root argument, as it always matches the root of the inode passed to them.
Signed-off-by: Filipe Manana <fdmanana@suse.com>
---
fs/btrfs/tree-log.c | 20 +++++++++-----------
1 file changed, 9 insertions(+), 11 deletions(-)
diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c
index a7bba3d61e55..f4257be56bd3 100644
--- a/fs/btrfs/tree-log.c
+++ b/fs/btrfs/tree-log.c
@@ -1482,8 +1482,7 @@ static noinline int add_inode_ref(struct btrfs_trans_handle *trans,
return ret;
}
-static int count_inode_extrefs(struct btrfs_root *root,
- struct btrfs_inode *inode, struct btrfs_path *path)
+static int count_inode_extrefs(struct btrfs_inode *inode, struct btrfs_path *path)
{
int ret = 0;
int name_len;
@@ -1497,8 +1496,8 @@ static int count_inode_extrefs(struct btrfs_root *root,
struct extent_buffer *leaf;
while (1) {
- ret = btrfs_find_one_extref(root, inode_objectid, offset, path,
- &extref, &offset);
+ ret = btrfs_find_one_extref(inode->root, inode_objectid, offset,
+ path, &extref, &offset);
if (ret)
break;
@@ -1526,8 +1525,7 @@ static int count_inode_extrefs(struct btrfs_root *root,
return nlink;
}
-static int count_inode_refs(struct btrfs_root *root,
- struct btrfs_inode *inode, struct btrfs_path *path)
+static int count_inode_refs(struct btrfs_inode *inode, struct btrfs_path *path)
{
int ret;
struct btrfs_key key;
@@ -1542,7 +1540,7 @@ static int count_inode_refs(struct btrfs_root *root,
key.offset = (u64)-1;
while (1) {
- ret = btrfs_search_slot(NULL, root, &key, path, 0, 0);
+ ret = btrfs_search_slot(NULL, inode->root, &key, path, 0, 0);
if (ret < 0)
break;
if (ret > 0) {
@@ -1594,9 +1592,9 @@ static int count_inode_refs(struct btrfs_root *root,
* will free the inode.
*/
static noinline int fixup_inode_link_count(struct btrfs_trans_handle *trans,
- struct btrfs_root *root,
struct inode *inode)
{
+ struct btrfs_root *root = BTRFS_I(inode)->root;
struct btrfs_path *path;
int ret;
u64 nlink = 0;
@@ -1606,13 +1604,13 @@ static noinline int fixup_inode_link_count(struct btrfs_trans_handle *trans,
if (!path)
return -ENOMEM;
- ret = count_inode_refs(root, BTRFS_I(inode), path);
+ ret = count_inode_refs(BTRFS_I(inode), path);
if (ret < 0)
goto out;
nlink = ret;
- ret = count_inode_extrefs(root, BTRFS_I(inode), path);
+ ret = count_inode_extrefs(BTRFS_I(inode), path);
if (ret < 0)
goto out;
@@ -1684,7 +1682,7 @@ static noinline int fixup_inode_link_counts(struct btrfs_trans_handle *trans,
break;
}
- ret = fixup_inode_link_count(trans, root, inode);
+ ret = fixup_inode_link_count(trans, inode);
iput(inode);
if (ret)
break;
--
2.40.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [PATCH 0/8] btrfs: some cleanups around inode update and helpers
2023-09-22 10:37 [PATCH 0/8] btrfs: some cleanups around inode update and helpers fdmanana
` (7 preceding siblings ...)
2023-09-22 10:37 ` [PATCH 8/8] btrfs: remove redundant root argument from fixup_inode_link_count() fdmanana
@ 2023-09-22 13:48 ` David Sterba
8 siblings, 0 replies; 17+ messages in thread
From: David Sterba @ 2023-09-22 13:48 UTC (permalink / raw)
To: fdmanana; +Cc: linux-btrfs
On Fri, Sep 22, 2023 at 11:37:18AM +0100, fdmanana@kernel.org wrote:
> From: Filipe Manana <fdmanana@suse.com>
>
> Some cleanups mostly around btrfs_update_inode(), its helpers and some
> callers, mostly to remove the redundant root argument, which can be taken
> from the given inode. More details in the changelogs.
>
> Filipe Manana (8):
> btrfs: simplify error check condition at btrfs_dirty_inode()
> btrfs: remove noline from btrfs_update_inode()
> btrfs: remove redundant root argument from btrfs_update_inode_fallback()
> btrfs: remove redundant root argument from btrfs_update_inode()
> btrfs: remove redundant root argument from btrfs_update_inode_item()
> btrfs: remove redundant root argument from btrfs_delayed_update_inode()
> btrfs: remove redundant root argument from maybe_insert_hole()
> btrfs: remove redundant root argument from fixup_inode_link_count()
Added to misc-next, thanks. The effects of removed parameters:
btrfs_finish_one_ordered -8 (208 -> 200)
btrfs_update_inode -8 (48 -> 40)
clone_finish_inode_update -8 (72 -> 64)
btrfs_cont_expand -8 (184 -> 176)
btrfs_xattr_handler_set_prop -8 (64 -> 56)
btrfs_fallocate_update_isize -8 (40 -> 32)
btrfs_add_link +8 (120 -> 128)
btrfs_update_inode_fallback -8 (32 -> 24)
btrfs_write_out_cache -8 (144 -> 136)
btrfs_setxattr_trans -8 (72 -> 64)
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 1/8] btrfs: simplify error check condition at btrfs_dirty_inode()
2023-09-22 10:37 ` [PATCH 1/8] btrfs: simplify error check condition at btrfs_dirty_inode() fdmanana
@ 2023-09-22 22:00 ` Qu Wenruo
0 siblings, 0 replies; 17+ messages in thread
From: Qu Wenruo @ 2023-09-22 22:00 UTC (permalink / raw)
To: fdmanana, linux-btrfs
On 2023/9/22 20:07, fdmanana@kernel.org wrote:
> From: Filipe Manana <fdmanana@suse.com>
>
> The following condition at btrfs_dirty_inode() is redundant:
>
> if (ret && (ret == -ENOSPC || ret == -EDQUOT))
>
> The first check for a non-zero 'ret' value is pointless, we can simplify
> this to simply:
>
> if (ret == -ENOSPC || ret == -EDQUOT)
>
> Not only this makes it easier to read, it also slightly reduces the text
> size of the btrfs kernel module:
>
> $ size fs/btrfs/btrfs.ko.before
> text data bss dec hex filename
> 1641400 168265 16864 1826529 1bdee1 fs/btrfs/btrfs.ko.before
>
> $ size fs/btrfs/btrfs.ko.after
> text data bss dec hex filename
> 1641224 168181 16864 1826269 1bdddd fs/btrfs/btrfs.ko.after
>
> Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: Qu Wenruo <wqu@suse.com>
A little surprised that compiler didn't optimize it out.
Thanks,
Qu
> ---
> fs/btrfs/inode.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
> index 514d2e8a4f52..f16dfeabeaf0 100644
> --- a/fs/btrfs/inode.c
> +++ b/fs/btrfs/inode.c
> @@ -6011,7 +6011,7 @@ static int btrfs_dirty_inode(struct btrfs_inode *inode)
> return PTR_ERR(trans);
>
> ret = btrfs_update_inode(trans, root, inode);
> - if (ret && (ret == -ENOSPC || ret == -EDQUOT)) {
> + if (ret == -ENOSPC || ret == -EDQUOT) {
> /* whoops, lets try again with the full transaction */
> btrfs_end_transaction(trans);
> trans = btrfs_start_transaction(root, 1);
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 2/8] btrfs: remove noline from btrfs_update_inode()
2023-09-22 10:37 ` [PATCH 2/8] btrfs: remove noline from btrfs_update_inode() fdmanana
@ 2023-09-22 22:00 ` Qu Wenruo
0 siblings, 0 replies; 17+ messages in thread
From: Qu Wenruo @ 2023-09-22 22:00 UTC (permalink / raw)
To: fdmanana, linux-btrfs
On 2023/9/22 20:07, fdmanana@kernel.org wrote:
> From: Filipe Manana <fdmanana@suse.com>
>
> The noinline attribute of btrfs_update_inode() is pointless as the
> function is exported and widely used, so remove it.
>
> Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: Qu Wenruo <wqu@suse.com>
Thanks,
Qu
> ---
> fs/btrfs/inode.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
> index f16dfeabeaf0..fb7d7d0077f0 100644
> --- a/fs/btrfs/inode.c
> +++ b/fs/btrfs/inode.c
> @@ -4001,9 +4001,9 @@ static noinline int btrfs_update_inode_item(struct btrfs_trans_handle *trans,
> /*
> * copy everything in the in-memory inode into the btree.
> */
> -noinline int btrfs_update_inode(struct btrfs_trans_handle *trans,
> - struct btrfs_root *root,
> - struct btrfs_inode *inode)
> +int btrfs_update_inode(struct btrfs_trans_handle *trans,
> + struct btrfs_root *root,
> + struct btrfs_inode *inode)
> {
> struct btrfs_fs_info *fs_info = root->fs_info;
> int ret;
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 4/8] btrfs: remove redundant root argument from btrfs_update_inode()
2023-09-22 10:37 ` [PATCH 4/8] btrfs: remove redundant root argument from btrfs_update_inode() fdmanana
@ 2023-09-22 22:04 ` Qu Wenruo
0 siblings, 0 replies; 17+ messages in thread
From: Qu Wenruo @ 2023-09-22 22:04 UTC (permalink / raw)
To: fdmanana, linux-btrfs
On 2023/9/22 20:07, fdmanana@kernel.org wrote:
> From: Filipe Manana <fdmanana@suse.com>
>
> The root argument for btrfs_update_inode() always matches the root of the
> given inode, so remove the root argument and get it from the inode
> argument.
>
> Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: Qu Wenruo <wqu@suse.com>
Thanks,
Qu
> ---
> fs/btrfs/block-group.c | 3 +--
> fs/btrfs/btrfs_inode.h | 2 +-
> fs/btrfs/file.c | 8 ++++----
> fs/btrfs/free-space-cache.c | 13 ++++++-------
> fs/btrfs/inode.c | 34 +++++++++++++++++-----------------
> fs/btrfs/ioctl.c | 2 +-
> fs/btrfs/reflink.c | 3 +--
> fs/btrfs/tree-log.c | 12 ++++++------
> fs/btrfs/verity.c | 4 ++--
> fs/btrfs/xattr.c | 4 ++--
> 10 files changed, 41 insertions(+), 44 deletions(-)
>
> diff --git a/fs/btrfs/block-group.c b/fs/btrfs/block-group.c
> index 2b9aaeefaf76..6e2a4000bfe0 100644
> --- a/fs/btrfs/block-group.c
> +++ b/fs/btrfs/block-group.c
> @@ -3051,7 +3051,6 @@ static int cache_save_setup(struct btrfs_block_group *block_group,
> struct btrfs_path *path)
> {
> struct btrfs_fs_info *fs_info = block_group->fs_info;
> - struct btrfs_root *root = fs_info->tree_root;
> struct inode *inode = NULL;
> struct extent_changeset *data_reserved = NULL;
> u64 alloc_hint = 0;
> @@ -3103,7 +3102,7 @@ static int cache_save_setup(struct btrfs_block_group *block_group,
> * time.
> */
> BTRFS_I(inode)->generation = 0;
> - ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
> + ret = btrfs_update_inode(trans, BTRFS_I(inode));
> if (ret) {
> /*
> * So theoretically we could recover from this, simply set the
> diff --git a/fs/btrfs/btrfs_inode.h b/fs/btrfs/btrfs_inode.h
> index d12556627cce..f2c928345d53 100644
> --- a/fs/btrfs/btrfs_inode.h
> +++ b/fs/btrfs/btrfs_inode.h
> @@ -482,7 +482,7 @@ struct extent_map *btrfs_get_extent(struct btrfs_inode *inode,
> struct page *page, size_t pg_offset,
> u64 start, u64 end);
> int btrfs_update_inode(struct btrfs_trans_handle *trans,
> - struct btrfs_root *root, struct btrfs_inode *inode);
> + struct btrfs_inode *inode);
> int btrfs_update_inode_fallback(struct btrfs_trans_handle *trans,
> struct btrfs_inode *inode);
> int btrfs_orphan_add(struct btrfs_trans_handle *trans, struct btrfs_inode *inode);
> diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
> index 7d6652941210..e847043defce 100644
> --- a/fs/btrfs/file.c
> +++ b/fs/btrfs/file.c
> @@ -2460,7 +2460,7 @@ int btrfs_replace_file_extents(struct btrfs_inode *inode,
> if (!extent_info || extent_info->update_times)
> inode->vfs_inode.i_mtime = inode_set_ctime_current(&inode->vfs_inode);
>
> - ret = btrfs_update_inode(trans, root, inode);
> + ret = btrfs_update_inode(trans, inode);
> if (ret)
> break;
>
> @@ -2700,7 +2700,7 @@ static int btrfs_punch_hole(struct file *file, loff_t offset, loff_t len)
> ASSERT(trans != NULL);
> inode_inc_iversion(inode);
> inode->i_mtime = inode_set_ctime_current(inode);
> - ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
> + ret = btrfs_update_inode(trans, BTRFS_I(inode));
> updated_inode = true;
> btrfs_end_transaction(trans);
> btrfs_btree_balance_dirty(fs_info);
> @@ -2726,7 +2726,7 @@ static int btrfs_punch_hole(struct file *file, loff_t offset, loff_t len)
> } else {
> int ret2;
>
> - ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
> + ret = btrfs_update_inode(trans, BTRFS_I(inode));
> ret2 = btrfs_end_transaction(trans);
> if (!ret)
> ret = ret2;
> @@ -2793,7 +2793,7 @@ static int btrfs_fallocate_update_isize(struct inode *inode,
> inode_set_ctime_current(inode);
> i_size_write(inode, end);
> btrfs_inode_safe_disk_i_size_write(BTRFS_I(inode), 0);
> - ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
> + ret = btrfs_update_inode(trans, BTRFS_I(inode));
> ret2 = btrfs_end_transaction(trans);
>
> return ret ? ret : ret2;
> diff --git a/fs/btrfs/free-space-cache.c b/fs/btrfs/free-space-cache.c
> index acb8ef3dd6b0..6f93c9a2c3e3 100644
> --- a/fs/btrfs/free-space-cache.c
> +++ b/fs/btrfs/free-space-cache.c
> @@ -359,7 +359,7 @@ int btrfs_truncate_free_space_cache(struct btrfs_trans_handle *trans,
> if (ret)
> goto fail;
>
> - ret = btrfs_update_inode(trans, root, inode);
> + ret = btrfs_update_inode(trans, inode);
>
> fail:
> if (locked)
> @@ -1326,7 +1326,7 @@ static int __btrfs_wait_cache_io(struct btrfs_root *root,
> "failed to write free space cache for block group %llu error %d",
> block_group->start, ret);
> }
> - btrfs_update_inode(trans, root, BTRFS_I(inode));
> + btrfs_update_inode(trans, BTRFS_I(inode));
>
> if (block_group) {
> /* the dirty list is protected by the dirty_bgs_lock */
> @@ -1367,7 +1367,6 @@ int btrfs_wait_cache_io(struct btrfs_trans_handle *trans,
> /*
> * Write out cached info to an inode.
> *
> - * @root: root the inode belongs to
> * @inode: freespace inode we are writing out
> * @ctl: free space cache we are going to write out
> * @block_group: block_group for this cache if it belongs to a block_group
> @@ -1378,7 +1377,7 @@ int btrfs_wait_cache_io(struct btrfs_trans_handle *trans,
> * on mount. This will return 0 if it was successful in writing the cache out,
> * or an errno if it was not.
> */
> -static int __btrfs_write_out_cache(struct btrfs_root *root, struct inode *inode,
> +static int __btrfs_write_out_cache(struct inode *inode,
> struct btrfs_free_space_ctl *ctl,
> struct btrfs_block_group *block_group,
> struct btrfs_io_ctl *io_ctl,
> @@ -1511,7 +1510,7 @@ static int __btrfs_write_out_cache(struct btrfs_root *root, struct inode *inode,
> invalidate_inode_pages2(inode->i_mapping);
> BTRFS_I(inode)->generation = 0;
> }
> - btrfs_update_inode(trans, root, BTRFS_I(inode));
> + btrfs_update_inode(trans, BTRFS_I(inode));
> if (must_iput)
> iput(inode);
> return ret;
> @@ -1537,8 +1536,8 @@ int btrfs_write_out_cache(struct btrfs_trans_handle *trans,
> if (IS_ERR(inode))
> return 0;
>
> - ret = __btrfs_write_out_cache(fs_info->tree_root, inode, ctl,
> - block_group, &block_group->io_ctl, trans);
> + ret = __btrfs_write_out_cache(inode, ctl, block_group,
> + &block_group->io_ctl, trans);
> if (ret) {
> btrfs_debug(fs_info,
> "failed to write free space cache for block group %llu error %d",
> diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
> index 44836d1f99a9..13a97d3ce34a 100644
> --- a/fs/btrfs/inode.c
> +++ b/fs/btrfs/inode.c
> @@ -671,7 +671,7 @@ static noinline int cow_file_range_inline(struct btrfs_inode *inode, u64 size,
> }
>
> btrfs_update_inode_bytes(inode, size, drop_args.bytes_found);
> - ret = btrfs_update_inode(trans, root, inode);
> + ret = btrfs_update_inode(trans, inode);
> if (ret && ret != -ENOSPC) {
> btrfs_abort_transaction(trans, ret);
> goto out;
> @@ -4002,9 +4002,9 @@ static noinline int btrfs_update_inode_item(struct btrfs_trans_handle *trans,
> * copy everything in the in-memory inode into the btree.
> */
> int btrfs_update_inode(struct btrfs_trans_handle *trans,
> - struct btrfs_root *root,
> struct btrfs_inode *inode)
> {
> + struct btrfs_root *root = inode->root;
> struct btrfs_fs_info *fs_info = root->fs_info;
> int ret;
>
> @@ -4034,7 +4034,7 @@ int btrfs_update_inode_fallback(struct btrfs_trans_handle *trans,
> {
> int ret;
>
> - ret = btrfs_update_inode(trans, inode->root, inode);
> + ret = btrfs_update_inode(trans, inode);
> if (ret == -ENOSPC)
> return btrfs_update_inode_item(trans, inode->root, inode);
> return ret;
> @@ -4143,7 +4143,7 @@ static int __btrfs_unlink_inode(struct btrfs_trans_handle *trans,
> inode_inc_iversion(&dir->vfs_inode);
> inode_set_ctime_current(&inode->vfs_inode);
> dir->vfs_inode.i_mtime = inode_set_ctime_current(&dir->vfs_inode);
> - ret = btrfs_update_inode(trans, root, dir);
> + ret = btrfs_update_inode(trans, dir);
> out:
> return ret;
> }
> @@ -4157,7 +4157,7 @@ int btrfs_unlink_inode(struct btrfs_trans_handle *trans,
> ret = __btrfs_unlink_inode(trans, dir, inode, name, NULL);
> if (!ret) {
> drop_nlink(&inode->vfs_inode);
> - ret = btrfs_update_inode(trans, inode->root, inode);
> + ret = btrfs_update_inode(trans, inode);
> }
> return ret;
> }
> @@ -4843,7 +4843,7 @@ static int maybe_insert_hole(struct btrfs_root *root, struct btrfs_inode *inode,
> btrfs_abort_transaction(trans, ret);
> } else {
> btrfs_update_inode_bytes(inode, 0, drop_args.bytes_found);
> - btrfs_update_inode(trans, root, inode);
> + btrfs_update_inode(trans, inode);
> }
> btrfs_end_transaction(trans);
> return ret;
> @@ -4994,7 +4994,7 @@ static int btrfs_setsize(struct inode *inode, struct iattr *attr)
> i_size_write(inode, newsize);
> btrfs_inode_safe_disk_i_size_write(BTRFS_I(inode), 0);
> pagecache_isize_extended(inode, oldsize, newsize);
> - ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
> + ret = btrfs_update_inode(trans, BTRFS_I(inode));
> btrfs_drew_write_unlock(&root->snapshot_lock);
> btrfs_end_transaction(trans);
> } else {
> @@ -6010,7 +6010,7 @@ static int btrfs_dirty_inode(struct btrfs_inode *inode)
> if (IS_ERR(trans))
> return PTR_ERR(trans);
>
> - ret = btrfs_update_inode(trans, root, inode);
> + ret = btrfs_update_inode(trans, inode);
> if (ret == -ENOSPC || ret == -EDQUOT) {
> /* whoops, lets try again with the full transaction */
> btrfs_end_transaction(trans);
> @@ -6018,7 +6018,7 @@ static int btrfs_dirty_inode(struct btrfs_inode *inode)
> if (IS_ERR(trans))
> return PTR_ERR(trans);
>
> - ret = btrfs_update_inode(trans, root, inode);
> + ret = btrfs_update_inode(trans, inode);
> }
> btrfs_end_transaction(trans);
> if (inode->delayed_node)
> @@ -6457,7 +6457,7 @@ int btrfs_add_link(struct btrfs_trans_handle *trans,
> parent_inode->vfs_inode.i_mtime =
> inode_set_ctime_current(&parent_inode->vfs_inode);
>
> - ret = btrfs_update_inode(trans, root, parent_inode);
> + ret = btrfs_update_inode(trans, parent_inode);
> if (ret)
> btrfs_abort_transaction(trans, ret);
> return ret;
> @@ -6608,7 +6608,7 @@ static int btrfs_link(struct dentry *old_dentry, struct inode *dir,
> } else {
> struct dentry *parent = dentry->d_parent;
>
> - err = btrfs_update_inode(trans, root, BTRFS_I(inode));
> + err = btrfs_update_inode(trans, BTRFS_I(inode));
> if (err)
> goto fail;
> if (inode->i_nlink == 1) {
> @@ -8349,7 +8349,7 @@ static int btrfs_truncate(struct btrfs_inode *inode, bool skip_writeback)
> if (ret != -ENOSPC && ret != -EAGAIN)
> break;
>
> - ret = btrfs_update_inode(trans, root, inode);
> + ret = btrfs_update_inode(trans, inode);
> if (ret)
> break;
>
> @@ -8402,7 +8402,7 @@ static int btrfs_truncate(struct btrfs_inode *inode, bool skip_writeback)
> int ret2;
>
> trans->block_rsv = &fs_info->trans_block_rsv;
> - ret2 = btrfs_update_inode(trans, root, inode);
> + ret2 = btrfs_update_inode(trans, inode);
> if (ret2 && !ret)
> ret = ret2;
>
> @@ -8833,7 +8833,7 @@ static int btrfs_rename_exchange(struct inode *old_dir,
> BTRFS_I(old_dentry->d_inode),
> old_name, &old_rename_ctx);
> if (!ret)
> - ret = btrfs_update_inode(trans, root, BTRFS_I(old_inode));
> + ret = btrfs_update_inode(trans, BTRFS_I(old_inode));
> }
> if (ret) {
> btrfs_abort_transaction(trans, ret);
> @@ -8848,7 +8848,7 @@ static int btrfs_rename_exchange(struct inode *old_dir,
> BTRFS_I(new_dentry->d_inode),
> new_name, &new_rename_ctx);
> if (!ret)
> - ret = btrfs_update_inode(trans, dest, BTRFS_I(new_inode));
> + ret = btrfs_update_inode(trans, BTRFS_I(new_inode));
> }
> if (ret) {
> btrfs_abort_transaction(trans, ret);
> @@ -9093,7 +9093,7 @@ static int btrfs_rename(struct mnt_idmap *idmap,
> BTRFS_I(d_inode(old_dentry)),
> &old_fname.disk_name, &rename_ctx);
> if (!ret)
> - ret = btrfs_update_inode(trans, root, BTRFS_I(old_inode));
> + ret = btrfs_update_inode(trans, BTRFS_I(old_inode));
> }
> if (ret) {
> btrfs_abort_transaction(trans, ret);
> @@ -9649,7 +9649,7 @@ static int __btrfs_prealloc_file_range(struct inode *inode, int mode,
> btrfs_inode_safe_disk_i_size_write(BTRFS_I(inode), 0);
> }
>
> - ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
> + ret = btrfs_update_inode(trans, BTRFS_I(inode));
>
> if (ret) {
> btrfs_abort_transaction(trans, ret);
> diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
> index 018ea98b239a..24eae7c2b3ae 100644
> --- a/fs/btrfs/ioctl.c
> +++ b/fs/btrfs/ioctl.c
> @@ -385,7 +385,7 @@ int btrfs_fileattr_set(struct mnt_idmap *idmap,
> btrfs_sync_inode_flags_to_i_flags(inode);
> inode_inc_iversion(inode);
> inode_set_ctime_current(inode);
> - ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
> + ret = btrfs_update_inode(trans, BTRFS_I(inode));
>
> out_end_trans:
> btrfs_end_transaction(trans);
> diff --git a/fs/btrfs/reflink.c b/fs/btrfs/reflink.c
> index 65d2bd6910f2..fabd856e5079 100644
> --- a/fs/btrfs/reflink.c
> +++ b/fs/btrfs/reflink.c
> @@ -25,7 +25,6 @@ static int clone_finish_inode_update(struct btrfs_trans_handle *trans,
> const u64 olen,
> int no_time_update)
> {
> - struct btrfs_root *root = BTRFS_I(inode)->root;
> int ret;
>
> inode_inc_iversion(inode);
> @@ -43,7 +42,7 @@ static int clone_finish_inode_update(struct btrfs_trans_handle *trans,
> btrfs_inode_safe_disk_i_size_write(BTRFS_I(inode), 0);
> }
>
> - ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
> + ret = btrfs_update_inode(trans, BTRFS_I(inode));
> if (ret) {
> btrfs_abort_transaction(trans, ret);
> btrfs_end_transaction(trans);
> diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c
> index 595982434216..a7bba3d61e55 100644
> --- a/fs/btrfs/tree-log.c
> +++ b/fs/btrfs/tree-log.c
> @@ -889,7 +889,7 @@ static noinline int replay_one_extent(struct btrfs_trans_handle *trans,
>
> update_inode:
> btrfs_update_inode_bytes(BTRFS_I(inode), nbytes, drop_args.bytes_found);
> - ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
> + ret = btrfs_update_inode(trans, BTRFS_I(inode));
> out:
> iput(inode);
> return ret;
> @@ -1444,7 +1444,7 @@ static noinline int add_inode_ref(struct btrfs_trans_handle *trans,
> if (ret)
> goto out;
>
> - ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
> + ret = btrfs_update_inode(trans, BTRFS_I(inode));
> if (ret)
> goto out;
> }
> @@ -1622,7 +1622,7 @@ static noinline int fixup_inode_link_count(struct btrfs_trans_handle *trans,
>
> if (nlink != inode->i_nlink) {
> set_nlink(inode, nlink);
> - ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
> + ret = btrfs_update_inode(trans, BTRFS_I(inode));
> if (ret)
> goto out;
> }
> @@ -1731,7 +1731,7 @@ static noinline int link_to_fixup_dir(struct btrfs_trans_handle *trans,
> set_nlink(inode, 1);
> else
> inc_nlink(inode);
> - ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
> + ret = btrfs_update_inode(trans, BTRFS_I(inode));
> } else if (ret == -EEXIST) {
> ret = 0;
> }
> @@ -1938,7 +1938,7 @@ static noinline int replay_one_name(struct btrfs_trans_handle *trans,
> out:
> if (!ret && update_size) {
> btrfs_i_size_write(BTRFS_I(dir), dir->i_size + name.len * 2);
> - ret = btrfs_update_inode(trans, root, BTRFS_I(dir));
> + ret = btrfs_update_inode(trans, BTRFS_I(dir));
> }
> kfree(name.name);
> iput(dir);
> @@ -2482,7 +2482,7 @@ static int replay_one_buffer(struct btrfs_root *log, struct extent_buffer *eb,
> drop_args.bytes_found);
> /* Update the inode's nbytes. */
> ret = btrfs_update_inode(wc->trans,
> - root, BTRFS_I(inode));
> + BTRFS_I(inode));
> }
> iput(inode);
> if (ret)
> diff --git a/fs/btrfs/verity.c b/fs/btrfs/verity.c
> index 744f4f4d4c68..66e2270b0dae 100644
> --- a/fs/btrfs/verity.c
> +++ b/fs/btrfs/verity.c
> @@ -487,7 +487,7 @@ static int rollback_verity(struct btrfs_inode *inode)
> }
> inode->ro_flags &= ~BTRFS_INODE_RO_VERITY;
> btrfs_sync_inode_flags_to_i_flags(&inode->vfs_inode);
> - ret = btrfs_update_inode(trans, root, inode);
> + ret = btrfs_update_inode(trans, inode);
> if (ret) {
> btrfs_abort_transaction(trans, ret);
> goto out;
> @@ -554,7 +554,7 @@ static int finish_verity(struct btrfs_inode *inode, const void *desc,
> }
> inode->ro_flags |= BTRFS_INODE_RO_VERITY;
> btrfs_sync_inode_flags_to_i_flags(&inode->vfs_inode);
> - ret = btrfs_update_inode(trans, root, inode);
> + ret = btrfs_update_inode(trans, inode);
> if (ret)
> goto end_trans;
> ret = del_orphan(trans, inode);
> diff --git a/fs/btrfs/xattr.c b/fs/btrfs/xattr.c
> index b906f809650e..76ff93b3eb27 100644
> --- a/fs/btrfs/xattr.c
> +++ b/fs/btrfs/xattr.c
> @@ -265,7 +265,7 @@ int btrfs_setxattr_trans(struct inode *inode, const char *name,
>
> inode_inc_iversion(inode);
> inode_set_ctime_current(inode);
> - ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
> + ret = btrfs_update_inode(trans, BTRFS_I(inode));
> if (ret)
> btrfs_abort_transaction(trans, ret);
> out:
> @@ -408,7 +408,7 @@ static int btrfs_xattr_handler_set_prop(const struct xattr_handler *handler,
> if (!ret) {
> inode_inc_iversion(inode);
> inode_set_ctime_current(inode);
> - ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
> + ret = btrfs_update_inode(trans, BTRFS_I(inode));
> if (ret)
> btrfs_abort_transaction(trans, ret);
> }
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 5/8] btrfs: remove redundant root argument from btrfs_update_inode_item()
2023-09-22 10:37 ` [PATCH 5/8] btrfs: remove redundant root argument from btrfs_update_inode_item() fdmanana
@ 2023-09-22 22:06 ` Qu Wenruo
0 siblings, 0 replies; 17+ messages in thread
From: Qu Wenruo @ 2023-09-22 22:06 UTC (permalink / raw)
To: fdmanana, linux-btrfs
On 2023/9/22 20:07, fdmanana@kernel.org wrote:
> From: Filipe Manana <fdmanana@suse.com>
>
> The root argument for btrfs_update_inode_item() always matches the root of
> the given inode, so remove the root argument and get it from the inode
> argument.
>
> Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: Qu Wenruo <wqu@suse.com>
Thanks,
Qu
> ---
> fs/btrfs/inode.c | 9 ++++-----
> 1 file changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
> index 13a97d3ce34a..c4b5d4047c5d 100644
> --- a/fs/btrfs/inode.c
> +++ b/fs/btrfs/inode.c
> @@ -3966,8 +3966,7 @@ static void fill_inode_item(struct btrfs_trans_handle *trans,
> * copy everything in the in-memory inode into the btree.
> */
> static noinline int btrfs_update_inode_item(struct btrfs_trans_handle *trans,
> - struct btrfs_root *root,
> - struct btrfs_inode *inode)
> + struct btrfs_inode *inode)
> {
> struct btrfs_inode_item *inode_item;
> struct btrfs_path *path;
> @@ -3978,7 +3977,7 @@ static noinline int btrfs_update_inode_item(struct btrfs_trans_handle *trans,
> if (!path)
> return -ENOMEM;
>
> - ret = btrfs_lookup_inode(trans, root, path, &inode->location, 1);
> + ret = btrfs_lookup_inode(trans, inode->root, path, &inode->location, 1);
> if (ret) {
> if (ret > 0)
> ret = -ENOENT;
> @@ -4026,7 +4025,7 @@ int btrfs_update_inode(struct btrfs_trans_handle *trans,
> return ret;
> }
>
> - return btrfs_update_inode_item(trans, root, inode);
> + return btrfs_update_inode_item(trans, inode);
> }
>
> int btrfs_update_inode_fallback(struct btrfs_trans_handle *trans,
> @@ -4036,7 +4035,7 @@ int btrfs_update_inode_fallback(struct btrfs_trans_handle *trans,
>
> ret = btrfs_update_inode(trans, inode);
> if (ret == -ENOSPC)
> - return btrfs_update_inode_item(trans, inode->root, inode);
> + return btrfs_update_inode_item(trans, inode);
> return ret;
> }
>
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 6/8] btrfs: remove redundant root argument from btrfs_delayed_update_inode()
2023-09-22 10:37 ` [PATCH 6/8] btrfs: remove redundant root argument from btrfs_delayed_update_inode() fdmanana
@ 2023-09-22 22:08 ` Qu Wenruo
0 siblings, 0 replies; 17+ messages in thread
From: Qu Wenruo @ 2023-09-22 22:08 UTC (permalink / raw)
To: fdmanana, linux-btrfs
On 2023/9/22 20:07, fdmanana@kernel.org wrote:
> From: Filipe Manana <fdmanana@suse.com>
>
> The root argument for btrfs_delayed_update_inode() always matches the root
> of the given inode, so remove the root argument and get it from the inode
> argument.
>
> Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: Qu Wenruo <wqu@suse.com>
Thanks,
Qu
> ---
> fs/btrfs/delayed-inode.c | 2 +-
> fs/btrfs/delayed-inode.h | 1 -
> fs/btrfs/inode.c | 2 +-
> 3 files changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/fs/btrfs/delayed-inode.c b/fs/btrfs/delayed-inode.c
> index 8ba045ae1d75..35d7616615c1 100644
> --- a/fs/btrfs/delayed-inode.c
> +++ b/fs/btrfs/delayed-inode.c
> @@ -1913,9 +1913,9 @@ int btrfs_fill_inode(struct inode *inode, u32 *rdev)
> }
>
> int btrfs_delayed_update_inode(struct btrfs_trans_handle *trans,
> - struct btrfs_root *root,
> struct btrfs_inode *inode)
> {
> + struct btrfs_root *root = inode->root;
> struct btrfs_delayed_node *delayed_node;
> int ret = 0;
>
> diff --git a/fs/btrfs/delayed-inode.h b/fs/btrfs/delayed-inode.h
> index dc1085b2a397..d050e572c7f9 100644
> --- a/fs/btrfs/delayed-inode.h
> +++ b/fs/btrfs/delayed-inode.h
> @@ -135,7 +135,6 @@ int btrfs_commit_inode_delayed_inode(struct btrfs_inode *inode);
>
>
> int btrfs_delayed_update_inode(struct btrfs_trans_handle *trans,
> - struct btrfs_root *root,
> struct btrfs_inode *inode);
> int btrfs_fill_inode(struct inode *inode, u32 *rdev);
> int btrfs_delayed_delete_inode_ref(struct btrfs_inode *inode);
> diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
> index c4b5d4047c5d..54647b7fb600 100644
> --- a/fs/btrfs/inode.c
> +++ b/fs/btrfs/inode.c
> @@ -4019,7 +4019,7 @@ int btrfs_update_inode(struct btrfs_trans_handle *trans,
> && !test_bit(BTRFS_FS_LOG_RECOVERING, &fs_info->flags)) {
> btrfs_update_root_times(trans, root);
>
> - ret = btrfs_delayed_update_inode(trans, root, inode);
> + ret = btrfs_delayed_update_inode(trans, inode);
> if (!ret)
> btrfs_set_inode_last_trans(trans, inode);
> return ret;
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 7/8] btrfs: remove redundant root argument from maybe_insert_hole()
2023-09-22 10:37 ` [PATCH 7/8] btrfs: remove redundant root argument from maybe_insert_hole() fdmanana
@ 2023-09-22 22:09 ` Qu Wenruo
0 siblings, 0 replies; 17+ messages in thread
From: Qu Wenruo @ 2023-09-22 22:09 UTC (permalink / raw)
To: fdmanana, linux-btrfs
On 2023/9/22 20:07, fdmanana@kernel.org wrote:
> From: Filipe Manana <fdmanana@suse.com>
>
> The root argument for maybe_insert_hole() always matches the root of the
> given inode, so remove the root argument and get it from the inode
> argument.
>
> Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: Qu Wenruo <wqu@suse.com>
Thanks,
Qu
> ---
> fs/btrfs/inode.c | 7 +++----
> 1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
> index 54647b7fb600..52576deda654 100644
> --- a/fs/btrfs/inode.c
> +++ b/fs/btrfs/inode.c
> @@ -4800,9 +4800,9 @@ int btrfs_truncate_block(struct btrfs_inode *inode, loff_t from, loff_t len,
> return ret;
> }
>
> -static int maybe_insert_hole(struct btrfs_root *root, struct btrfs_inode *inode,
> - u64 offset, u64 len)
> +static int maybe_insert_hole(struct btrfs_inode *inode, u64 offset, u64 len)
> {
> + struct btrfs_root *root = inode->root;
> struct btrfs_fs_info *fs_info = root->fs_info;
> struct btrfs_trans_handle *trans;
> struct btrfs_drop_extents_args drop_args = { 0 };
> @@ -4898,8 +4898,7 @@ int btrfs_cont_expand(struct btrfs_inode *inode, loff_t oldsize, loff_t size)
> if (!test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) {
> struct extent_map *hole_em;
>
> - err = maybe_insert_hole(root, inode, cur_offset,
> - hole_size);
> + err = maybe_insert_hole(inode, cur_offset, hole_size);
> if (err)
> break;
>
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 8/8] btrfs: remove redundant root argument from fixup_inode_link_count()
2023-09-22 10:37 ` [PATCH 8/8] btrfs: remove redundant root argument from fixup_inode_link_count() fdmanana
@ 2023-09-22 22:11 ` Qu Wenruo
0 siblings, 0 replies; 17+ messages in thread
From: Qu Wenruo @ 2023-09-22 22:11 UTC (permalink / raw)
To: fdmanana, linux-btrfs
On 2023/9/22 20:07, fdmanana@kernel.org wrote:
> From: Filipe Manana <fdmanana@suse.com>
>
> The root argument for fixup_inode_link_count() always matches the root of
> the given inode, so remove the root argument and get it from the inode
> argument. This also applies to the helpers count_inode_extrefs() and
> count_inode_refs() used by fixup_inode_link_count() - they don't need the
> root argument, as it always matches the root of the inode passed to them.
>
> Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: Qu Wenruo <wqu@suse.com>
Thanks,
Qu
> ---
> fs/btrfs/tree-log.c | 20 +++++++++-----------
> 1 file changed, 9 insertions(+), 11 deletions(-)
>
> diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c
> index a7bba3d61e55..f4257be56bd3 100644
> --- a/fs/btrfs/tree-log.c
> +++ b/fs/btrfs/tree-log.c
> @@ -1482,8 +1482,7 @@ static noinline int add_inode_ref(struct btrfs_trans_handle *trans,
> return ret;
> }
>
> -static int count_inode_extrefs(struct btrfs_root *root,
> - struct btrfs_inode *inode, struct btrfs_path *path)
> +static int count_inode_extrefs(struct btrfs_inode *inode, struct btrfs_path *path)
> {
> int ret = 0;
> int name_len;
> @@ -1497,8 +1496,8 @@ static int count_inode_extrefs(struct btrfs_root *root,
> struct extent_buffer *leaf;
>
> while (1) {
> - ret = btrfs_find_one_extref(root, inode_objectid, offset, path,
> - &extref, &offset);
> + ret = btrfs_find_one_extref(inode->root, inode_objectid, offset,
> + path, &extref, &offset);
> if (ret)
> break;
>
> @@ -1526,8 +1525,7 @@ static int count_inode_extrefs(struct btrfs_root *root,
> return nlink;
> }
>
> -static int count_inode_refs(struct btrfs_root *root,
> - struct btrfs_inode *inode, struct btrfs_path *path)
> +static int count_inode_refs(struct btrfs_inode *inode, struct btrfs_path *path)
> {
> int ret;
> struct btrfs_key key;
> @@ -1542,7 +1540,7 @@ static int count_inode_refs(struct btrfs_root *root,
> key.offset = (u64)-1;
>
> while (1) {
> - ret = btrfs_search_slot(NULL, root, &key, path, 0, 0);
> + ret = btrfs_search_slot(NULL, inode->root, &key, path, 0, 0);
> if (ret < 0)
> break;
> if (ret > 0) {
> @@ -1594,9 +1592,9 @@ static int count_inode_refs(struct btrfs_root *root,
> * will free the inode.
> */
> static noinline int fixup_inode_link_count(struct btrfs_trans_handle *trans,
> - struct btrfs_root *root,
> struct inode *inode)
> {
> + struct btrfs_root *root = BTRFS_I(inode)->root;
> struct btrfs_path *path;
> int ret;
> u64 nlink = 0;
> @@ -1606,13 +1604,13 @@ static noinline int fixup_inode_link_count(struct btrfs_trans_handle *trans,
> if (!path)
> return -ENOMEM;
>
> - ret = count_inode_refs(root, BTRFS_I(inode), path);
> + ret = count_inode_refs(BTRFS_I(inode), path);
> if (ret < 0)
> goto out;
>
> nlink = ret;
>
> - ret = count_inode_extrefs(root, BTRFS_I(inode), path);
> + ret = count_inode_extrefs(BTRFS_I(inode), path);
> if (ret < 0)
> goto out;
>
> @@ -1684,7 +1682,7 @@ static noinline int fixup_inode_link_counts(struct btrfs_trans_handle *trans,
> break;
> }
>
> - ret = fixup_inode_link_count(trans, root, inode);
> + ret = fixup_inode_link_count(trans, inode);
> iput(inode);
> if (ret)
> break;
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2023-09-22 22:11 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-22 10:37 [PATCH 0/8] btrfs: some cleanups around inode update and helpers fdmanana
2023-09-22 10:37 ` [PATCH 1/8] btrfs: simplify error check condition at btrfs_dirty_inode() fdmanana
2023-09-22 22:00 ` Qu Wenruo
2023-09-22 10:37 ` [PATCH 2/8] btrfs: remove noline from btrfs_update_inode() fdmanana
2023-09-22 22:00 ` Qu Wenruo
2023-09-22 10:37 ` [PATCH 3/8] btrfs: remove redundant root argument from btrfs_update_inode_fallback() fdmanana
2023-09-22 10:37 ` [PATCH 4/8] btrfs: remove redundant root argument from btrfs_update_inode() fdmanana
2023-09-22 22:04 ` Qu Wenruo
2023-09-22 10:37 ` [PATCH 5/8] btrfs: remove redundant root argument from btrfs_update_inode_item() fdmanana
2023-09-22 22:06 ` Qu Wenruo
2023-09-22 10:37 ` [PATCH 6/8] btrfs: remove redundant root argument from btrfs_delayed_update_inode() fdmanana
2023-09-22 22:08 ` Qu Wenruo
2023-09-22 10:37 ` [PATCH 7/8] btrfs: remove redundant root argument from maybe_insert_hole() fdmanana
2023-09-22 22:09 ` Qu Wenruo
2023-09-22 10:37 ` [PATCH 8/8] btrfs: remove redundant root argument from fixup_inode_link_count() fdmanana
2023-09-22 22:11 ` Qu Wenruo
2023-09-22 13:48 ` [PATCH 0/8] btrfs: some cleanups around inode update and helpers David Sterba
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox