summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kmo@daterainc.com>2015-01-15 09:33:48 +0000
committerKent Overstreet <kmo@daterainc.com>2015-01-15 19:27:21 -0800
commit2f0a24917b222ff6310e654ba543efa38b1b753a (patch)
treecc8c21e4558ef19d57d6e2058c3fc1ab7df08545
parentb765c10d0ccabc123b42ec52c6c9e5692d437a3d (diff)
update for bcache header changes
Change-Id: I5c64d438dac8bc28411f9a25e1be711477a3af80
-rw-r--r--bcache.c9
-rw-r--r--bcache.h17
-rw-r--r--bcacheadm.c2
3 files changed, 19 insertions, 9 deletions
diff --git a/bcache.c b/bcache.c
index 4bdbc6e..6fce698 100644
--- a/bcache.c
+++ b/bcache.c
@@ -434,7 +434,7 @@ unsigned hatoi_validate(const char *s, const char *msg)
static void do_write_sb(int fd, struct cache_sb *sb)
{
char zeroes[SB_START] = {0};
- size_t bytes = ((void *) bset_bkey_last(sb)) - (void *) sb;
+ size_t bytes = ((void *) __bset_bkey_last(sb)) - (void *) sb;
/* Zero start of disk */
if (pwrite(fd, zeroes, SB_START, 0) != SB_START) {
@@ -807,11 +807,6 @@ void show_super_backingdev(struct cache_sb *sb, bool force_csum)
if (sb->version == BCACHE_SB_VERSION_BDEV) {
first_sector = BDEV_DATA_START_DEFAULT;
} else {
- if (sb->keys == 1 || sb->d[0]) {
- fprintf(stderr,
- "Possible experimental format detected, bailing\n");
- exit(3);
- }
first_sector = sb->data_offset;
}
@@ -825,7 +820,7 @@ void show_super_backingdev(struct cache_sb *sb, bool force_csum)
static void show_cache_member(struct cache_sb *sb, unsigned i)
{
- struct cache_member *m = ((struct cache_member *) sb->d) + i;
+ struct cache_member *m = sb->members + i;
printf("cache.state\t%s\n", cache_state[CACHE_STATE(m)]);
diff --git a/bcache.h b/bcache.h
index d409ee2..4a3eff9 100644
--- a/bcache.h
+++ b/bcache.h
@@ -30,6 +30,21 @@ typedef __s64 s64;
(void) (&_max1 == &_max2); \
_max1 > _max2 ? _max1 : _max2; })
+#define __bkey_idx(_set, _offset) \
+ ((_set)->_data + (_offset))
+
+#define bkey_idx(_set, _offset) \
+ ((typeof(&(_set)->start[0])) __bkey_idx((_set), (_offset)))
+
+#define bkey_next(_k) \
+ ((typeof(_k)) __bkey_idx(_k, (_k)->u64s))
+
+#define __bset_bkey_last(_set) \
+ __bkey_idx((_set), (_set)->keys)
+
+#define bset_bkey_last(_set) \
+ bkey_idx((_set), (_set)->keys)
+
extern const char * const cache_state[];
extern const char * const replacement_policies[];
extern const char * const csum_types[];
@@ -115,7 +130,7 @@ char *device_set_failed(const char *dev_uuid);
#define csum_set(i, type) \
({ \
void *start = ((void *) (i)) + sizeof(uint64_t); \
- void *end = bset_bkey_last(i); \
+ void *end = __bset_bkey_last(i); \
\
bch_checksum(type, start, end - start); \
})
diff --git a/bcacheadm.c b/bcacheadm.c
index e92acbd..0e4a873 100644
--- a/bcacheadm.c
+++ b/bcacheadm.c
@@ -653,7 +653,7 @@ int bcache_status(NihCommand *command, char *const *args)
for (i = 0; i < seq_sb->nr_in_set; i++) {
char uuid_str[40];
- struct cache_member *m = ((struct cache_member *) seq_sb->d) + i;
+ struct cache_member *m = seq_sb->members + i;
char dev_state[32];
int j;