]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
btrfs: tree-log: don't use token set/get accessors in fill_inode_item()
authorDavid Sterba <dsterba@suse.com>
Fri, 27 Jun 2025 14:03:52 +0000 (16:03 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 21 Jul 2025 22:05:00 +0000 (00:05 +0200)
The token versions of set/get accessors will be removed, use the normal
helpers.

There's additional overhead of the token helpers that update the cached
address in case it moves to another page/folio. The normal versions
don't need to do that.

Note this is similar to fill_inode_item() in inode.c but with slight
differences. The two functions could be deduplicated eventually.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/tree-log.c

index 0a0eb4ff2ebc8d96d0fd67ca19e2fe74094831e1..1e805dabfc4b711ec51782829633b4407124bff9 100644 (file)
@@ -4204,44 +4204,34 @@ static void fill_inode_item(struct btrfs_trans_handle *trans,
                            struct inode *inode, int log_inode_only,
                            u64 logged_isize)
 {
-       struct btrfs_map_token token;
        u64 flags;
 
-       btrfs_init_map_token(&token, leaf);
-
        if (log_inode_only) {
                /* set the generation to zero so the recover code
                 * can tell the difference between an logging
                 * just to say 'this inode exists' and a logging
                 * to say 'update this inode with these values'
                 */
-               btrfs_set_token_inode_generation(&token, item, 0);
-               btrfs_set_token_inode_size(&token, item, logged_isize);
+               btrfs_set_inode_generation(leaf, item, 0);
+               btrfs_set_inode_size(leaf, item, logged_isize);
        } else {
-               btrfs_set_token_inode_generation(&token, item,
-                                                BTRFS_I(inode)->generation);
-               btrfs_set_token_inode_size(&token, item, inode->i_size);
+               btrfs_set_inode_generation(leaf, item, BTRFS_I(inode)->generation);
+               btrfs_set_inode_size(leaf, item, inode->i_size);
        }
 
-       btrfs_set_token_inode_uid(&token, item, i_uid_read(inode));
-       btrfs_set_token_inode_gid(&token, item, i_gid_read(inode));
-       btrfs_set_token_inode_mode(&token, item, inode->i_mode);
-       btrfs_set_token_inode_nlink(&token, item, inode->i_nlink);
+       btrfs_set_inode_uid(leaf, item, i_uid_read(inode));
+       btrfs_set_inode_gid(leaf, item, i_gid_read(inode));
+       btrfs_set_inode_mode(leaf, item, inode->i_mode);
+       btrfs_set_inode_nlink(leaf, item, inode->i_nlink);
 
-       btrfs_set_token_timespec_sec(&token, &item->atime,
-                                    inode_get_atime_sec(inode));
-       btrfs_set_token_timespec_nsec(&token, &item->atime,
-                                     inode_get_atime_nsec(inode));
+       btrfs_set_timespec_sec(leaf, &item->atime, inode_get_atime_sec(inode));
+       btrfs_set_timespec_nsec(leaf, &item->atime, inode_get_atime_nsec(inode));
 
-       btrfs_set_token_timespec_sec(&token, &item->mtime,
-                                    inode_get_mtime_sec(inode));
-       btrfs_set_token_timespec_nsec(&token, &item->mtime,
-                                     inode_get_mtime_nsec(inode));
+       btrfs_set_timespec_sec(leaf, &item->mtime, inode_get_mtime_sec(inode));
+       btrfs_set_timespec_nsec(leaf, &item->mtime, inode_get_mtime_nsec(inode));
 
-       btrfs_set_token_timespec_sec(&token, &item->ctime,
-                                    inode_get_ctime_sec(inode));
-       btrfs_set_token_timespec_nsec(&token, &item->ctime,
-                                     inode_get_ctime_nsec(inode));
+       btrfs_set_timespec_sec(leaf, &item->ctime, inode_get_ctime_sec(inode));
+       btrfs_set_timespec_nsec(leaf, &item->ctime, inode_get_ctime_nsec(inode));
 
        /*
         * We do not need to set the nbytes field, in fact during a fast fsync
@@ -4252,13 +4242,13 @@ static void fill_inode_item(struct btrfs_trans_handle *trans,
         * inode item in subvolume tree as needed (see overwrite_item()).
         */
 
-       btrfs_set_token_inode_sequence(&token, item, inode_peek_iversion(inode));
-       btrfs_set_token_inode_transid(&token, item, trans->transid);
-       btrfs_set_token_inode_rdev(&token, item, inode->i_rdev);
+       btrfs_set_inode_sequence(leaf, item, inode_peek_iversion(inode));
+       btrfs_set_inode_transid(leaf, item, trans->transid);
+       btrfs_set_inode_rdev(leaf, item, inode->i_rdev);
        flags = btrfs_inode_combine_flags(BTRFS_I(inode)->flags,
                                          BTRFS_I(inode)->ro_flags);
-       btrfs_set_token_inode_flags(&token, item, flags);
-       btrfs_set_token_inode_block_group(&token, item, 0);
+       btrfs_set_inode_flags(leaf, item, flags);
+       btrfs_set_inode_block_group(leaf, item, 0);
 }
 
 static int log_inode_item(struct btrfs_trans_handle *trans,