mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-18 03:44:27 +08:00
btrfs: move btrfs_map_token to accessors
This is specific to the item-accessor code, move it out of ctree.h into accessor.h/.c and then update the users to include the new header file. This un-inlines btrfs_init_map_token, however this is only called once per function so it's not critical to be inlined. This also saves 904 bytes of code on a release build. Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Reviewed-by: Anand Jain <anand.jain@oracle.com> Signed-off-by: Josef Bacik <josef@toxicpanda.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
818fe33aed
commit
ad1ac5012c
@ -6,6 +6,7 @@
|
||||
#include <asm/unaligned.h>
|
||||
#include "messages.h"
|
||||
#include "ctree.h"
|
||||
#include "accessors.h"
|
||||
|
||||
static bool check_setget_bounds(const struct extent_buffer *eb,
|
||||
const void *ptr, unsigned off, int size)
|
||||
@ -23,6 +24,13 @@ static bool check_setget_bounds(const struct extent_buffer *eb,
|
||||
return true;
|
||||
}
|
||||
|
||||
void btrfs_init_map_token(struct btrfs_map_token *token, struct extent_buffer *eb)
|
||||
{
|
||||
token->eb = eb;
|
||||
token->kaddr = page_address(eb->pages[0]);
|
||||
token->offset = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Macro templates that define helpers to read/write extent buffer data of a
|
||||
* given size, that are also used via ctree.h for access to item members by
|
||||
|
14
fs/btrfs/accessors.h
Normal file
14
fs/btrfs/accessors.h
Normal file
@ -0,0 +1,14 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
|
||||
#ifndef BTRFS_ACCESSORS_H
|
||||
#define BTRFS_ACCESSORS_H
|
||||
|
||||
struct btrfs_map_token {
|
||||
struct extent_buffer *eb;
|
||||
char *kaddr;
|
||||
unsigned long offset;
|
||||
};
|
||||
|
||||
void btrfs_init_map_token(struct btrfs_map_token *token, struct extent_buffer *eb);
|
||||
|
||||
#endif
|
@ -19,6 +19,7 @@
|
||||
#include "tree-mod-log.h"
|
||||
#include "tree-checker.h"
|
||||
#include "fs.h"
|
||||
#include "accessors.h"
|
||||
|
||||
static struct kmem_cache *btrfs_path_cachep;
|
||||
|
||||
|
@ -52,6 +52,8 @@ struct btrfs_balance_control;
|
||||
struct btrfs_delayed_root;
|
||||
struct reloc_control;
|
||||
|
||||
struct btrfs_map_token;
|
||||
|
||||
#define BTRFS_OLDEST_GENERATION 0ULL
|
||||
|
||||
#define BTRFS_EMPTY_DIR_SIZE 0
|
||||
@ -1199,23 +1201,9 @@ static inline u32 BTRFS_MAX_XATTR_SIZE(const struct btrfs_fs_info *info)
|
||||
return BTRFS_MAX_ITEM_SIZE(info) - sizeof(struct btrfs_dir_item);
|
||||
}
|
||||
|
||||
struct btrfs_map_token {
|
||||
struct extent_buffer *eb;
|
||||
char *kaddr;
|
||||
unsigned long offset;
|
||||
};
|
||||
|
||||
#define BTRFS_BYTES_TO_BLKS(fs_info, bytes) \
|
||||
((bytes) >> (fs_info)->sectorsize_bits)
|
||||
|
||||
static inline void btrfs_init_map_token(struct btrfs_map_token *token,
|
||||
struct extent_buffer *eb)
|
||||
{
|
||||
token->eb = eb;
|
||||
token->kaddr = page_address(eb->pages[0]);
|
||||
token->offset = 0;
|
||||
}
|
||||
|
||||
/* some macros to generate set/get functions for the struct fields. This
|
||||
* assumes there is a lefoo_to_cpu for every type, so lets make a simple
|
||||
* one for u8:
|
||||
|
@ -56,6 +56,7 @@
|
||||
#include "subpage.h"
|
||||
#include "inode-item.h"
|
||||
#include "fs.h"
|
||||
#include "accessors.h"
|
||||
|
||||
struct btrfs_iget_args {
|
||||
u64 ino;
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include "zoned.h"
|
||||
#include "inode-item.h"
|
||||
#include "fs.h"
|
||||
#include "accessors.h"
|
||||
|
||||
#define MAX_CONFLICT_INODES 10
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user