summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <koverstreet@google.com>2011-04-15 13:22:09 -0700
committerKent Overstreet <koverstreet@google.com>2011-04-15 13:22:09 -0700
commit1a7ae034f6f10f69cc367c8085ececae081da828 (patch)
tree887aae97ee52ba6804eb8de198f9f73ed6343473
parent0b4b6fe2d3d668ace37f44e5a2297bb0ab51dafe (diff)
New superblock fields for multiple cache devices
-rw-r--r--bcache.h5
-rw-r--r--make-bcache.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/bcache.h b/bcache.h
index 0054f7d..3f94dce 100644
--- a/bcache.h
+++ b/bcache.h
@@ -18,8 +18,11 @@ struct cache_sb {
uint64_t nbuckets; /* device size */
uint64_t btree_root;
uint16_t btree_level;
- uint16_t _pad[3];
+ uint16_t nr_in_set;
+ uint16_t nr_this_dev;
+ uint16_t _pad[1];
uint8_t uuid[16];
+ uint8_t set_uuid[16];
};
struct bucket_disk {
diff --git a/make-bcache.c b/make-bcache.c
index adc90ac..b213f9e 100644
--- a/make-bcache.c
+++ b/make-bcache.c
@@ -76,6 +76,7 @@ int main(int argc, char **argv)
struct cache_sb sb = { .block_size = 8, .bucket_size = 0 };
uuid_generate(sb.uuid);
+ uuid_generate(sb.set_uuid);
while ((c = getopt(argc, argv, "CBU:w:b:")) != -1)
switch (c) {
@@ -129,6 +130,7 @@ int main(int argc, char **argv)
memcpy(sb.magic, bcache_magic, 16);
sb.version = backingdev ? CACHE_BACKING_DEVICE : 0;
sb.nbuckets = nblocks / sb.bucket_size;
+ sb.nr_in_set = 1;
uuid_unparse(sb.uuid, uuid);
do