btrfs-progs: Introduce macro to calculate backup superblock offset
authorQu Wenruo <quwenruo@cn.fujitsu.com>
Tue, 24 Jan 2017 03:03:06 +0000 (11:03 +0800)
committerDavid Sterba <dsterba@suse.com>
Wed, 8 Mar 2017 12:00:45 +0000 (13:00 +0100)
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>
disk-io.h

index c4afea3..08ee5ce 100644 (file)
--- 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;
 }