btrfs-progs: add getters for ioctl search_header

The search header is usually accessed in an unaligned way, we could
trigger errors (SIGBUS) on architectures that do not support that.

Signed-off-by: David Sterba <dsterba@suse.com>
master
David Sterba 2016-05-03 16:00:05 +02:00
parent a6ffadee7b
commit 64a4800875
1 changed files with 26 additions and 0 deletions

26
ctree.h
View File

@ -2201,6 +2201,32 @@ static inline u32 btrfs_file_extent_inline_item_len(struct extent_buffer *eb,
return btrfs_item_size(eb, e) - offset;
}
/* struct btrfs_ioctl_search_header */
static inline u64 btrfs_search_header_transid(struct btrfs_ioctl_search_header *sh)
{
return get_unaligned_64(&sh->transid);
}
static inline u64 btrfs_search_header_objectid(struct btrfs_ioctl_search_header *sh)
{
return get_unaligned_64(&sh->objectid);
}
static inline u64 btrfs_search_header_offset(struct btrfs_ioctl_search_header *sh)
{
return get_unaligned_64(&sh->offset);
}
static inline u32 btrfs_search_header_type(struct btrfs_ioctl_search_header *sh)
{
return get_unaligned_32(&sh->type);
}
static inline u32 btrfs_search_header_len(struct btrfs_ioctl_search_header *sh)
{
return get_unaligned_32(&sh->len);
}
/* this returns the number of file bytes represented by the inline item.
* If an item is compressed, this is the uncompressed size
*/