summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQu Wenruo <quwenruo@cn.fujitsu.com>2017-01-24 11:03:06 +0800
committerDavid Sterba <dsterba@suse.com>2017-03-08 13:00:45 +0100
commitc92852205265cf8ed48671b2405b071fe5870a97 (patch)
tree1abc18acd0483005ca3cba352ce17666be6762ec
parenta2203246ae483d09114329d5d1f898efb23d6168 (diff)
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>
-rw-r--r--disk-io.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/disk-io.h b/disk-io.h
index c4afea3f..08ee5cee 100644
--- a/disk-io.h
+++ b/disk-io.h
@@ -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;
}