]> git.sesse.net Git - bcachefs-tools-debian/commitdiff
Fix offsets, cache and backing are two different cases.
authorGabriel <g2p.code@gmail.com>
Sat, 9 Mar 2013 14:51:17 +0000 (15:51 +0100)
committerGabriel <g2p.code@gmail.com>
Sat, 9 Mar 2013 14:51:17 +0000 (15:51 +0100)
bcache-super-show.c
bcache.h
make-bcache.c

index 6f9f6a757ec985b7d7d538ac97125f2de4e69973..97154cd9bcc8683c4faf79e6df2220d4bc7b3437 100644 (file)
@@ -97,12 +97,12 @@ int main(int argc, char **argv)
 
        printf("sb.version\t\t%" PRIu64, sb.version);
        switch (sb.version) {
-               case 1:
-                       printf(" [backing device]\n");
+               case 0:
+                       printf(" [cache device]\n");
                        break;
 
-               case 2:
-                       printf(" [cache device]\n");
+               case CACHE_BACKING_DEV: // 1
+                       printf(" [backing device]\n");
                        break;
 
                case 3:
@@ -125,15 +125,23 @@ int main(int argc, char **argv)
                        "dev.sectors_per_block\t%u\n"
                        "dev.sectors_per_bucket\t%u\n"
                        "dev.bucket_count\t%ju\n"
-                       "dev.cache_count\t\t%u\n" // expect version == 2 ? 1 : 0
-                       "dev.data.first_bucket\t%u\n",
+                       "dev.cache_count\t\t%u\n", // expect version == 0 ? 1 : 0
                        sb.block_size,
                        sb.bucket_size,
                        sb.nbuckets,
-                       sb.nr_this_dev,
-                       sb.first_bucket);
-
-       printf("dev.data.first_sector\t%u\n", sb.bucket_size * sb.first_bucket);
+                       sb.nr_this_dev);
+
+       if (sb.version == 0) {
+               printf(
+                               "dev.cache.first_bucket\t%u\n"
+                               "dev.cache.first_sector\t%u\n",
+                               sb.first_bucket,
+                               sb.bucket_size * sb.first_bucket);
+       } else if (sb.version == CACHE_BACKING_DEV) {
+               printf(
+                               "dev.data.first_sector\t%u\n",
+                               BDEV_DATA_START);
+       }
        putchar('\n');
 
        uuid_unparse(sb.set_uuid, uuid);
index 8087092fed50fa3da5620c0eed0f6a9182bff7e5..2e0154991fdabc198535de976fb5faeb41d3b523 100644 (file)
--- a/bcache.h
+++ b/bcache.h
@@ -25,6 +25,8 @@ static const char bcache_magic[] = {
 
 #define SB_SECTOR              8
 #define SB_LABEL_SIZE          32
+#define BDEV_DATA_START                16      /* sectors */
+
 
 struct cache_sb {
        uint64_t                csum;
index e20a7cf633190cd57625cb58018e320a5f666048..5f4ebccadc3fef0b79f0a9a92eb239e6fb8451d2 100644 (file)
@@ -154,7 +154,7 @@ const char * const cache_replacement_policies[] = {
 int writeback;
 int discard;
 unsigned cache_replacement_policy;
-uint64_t data_offset = 16;
+uint64_t data_offset = BDEV_DATA_START;
 
 struct option opts[] = {
        { "cache",              0, NULL,        'C' },
@@ -194,7 +194,7 @@ void write_sb(char *dev, struct cache_sb *sb)
        if (SB_BDEV(sb)) {
                SET_BDEV_WRITEBACK(sb, writeback);
 
-               if (data_offset != 16) {
+               if (data_offset != BDEV_DATA_START) {
                        sb->version = BCACHE_SB_BDEV_VERSION;
                        sb->keys = 1;
                        sb->d[0] = data_offset;
@@ -288,8 +288,8 @@ int main(int argc, char **argv)
                        break;
                case 'o':
                        data_offset = atoll(optarg);
-                       if (sb.d[0] < 16) {
-                               printf("Bad data offset; minimum 16 sectors\n");
+                       if (sb.d[0] < BDEV_DATA_START) {
+                               printf("Bad data offset; minimum %d sectors\n", BDEV_DATA_START);
                                exit(EXIT_FAILURE);
                        }
                        break;