btrfs-progs: Introduce macro to calculate backup superblock offset

Introduce a new macro, BTRFS_SB_OFFSET() to calculate backup superblock
offset, this is handy if one wants to initialize static array at
declaration time.

Suggested-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
master
Qu Wenruo 2017-01-24 11:03:06 +08:00 committed by David Sterba
parent a2203246ae
commit c928522052
1 changed files with 8 additions and 2 deletions

View File

@ -98,11 +98,17 @@ enum btrfs_read_sb_flags {
SBREAD_PARTIAL = (1 << 1),
};
/*
* Use macro to define mirror super block position,
* so we can use it in static array initialization
*/
#define BTRFS_SB_MIRROR_OFFSET(mirror) ((u64)(SZ_16K) << \
(BTRFS_SUPER_MIRROR_SHIFT * (mirror)))
static inline u64 btrfs_sb_offset(int mirror)
{
u64 start = SZ_16K;
if (mirror)
return start << (BTRFS_SUPER_MIRROR_SHIFT * mirror);
return BTRFS_SB_MIRROR_OFFSET(mirror);
return BTRFS_SUPER_INFO_OFFSET;
}