[dm-devel] [PATCH 4/7] Avoid struct members with the name 'dm'
Mike Snitzer
snitzer at redhat.com
Fri Apr 2 05:17:55 UTC 2010
perl -pi -e 's|ps->dm|ps->s|g' dm-multi*.[ch]
Could just as easily use 'multisnap' rather than 's' for the
'struct dm_multisnap' snapshot pointer.
Signed-off-by: Mike Snitzer <snitzer at redhat.com>
---
drivers/md/dm-multisnap-alloc.c | 32 +++++++-------
drivers/md/dm-multisnap-blocks.c | 14 +++---
drivers/md/dm-multisnap-btree.c | 34 ++++++++--------
drivers/md/dm-multisnap-commit.c | 26 ++++++------
drivers/md/dm-multisnap-daniel.c | 32 +++++++-------
drivers/md/dm-multisnap-delete.c | 14 +++---
drivers/md/dm-multisnap-freelist.c | 20 +++++-----
drivers/md/dm-multisnap-io.c | 12 +++---
drivers/md/dm-multisnap-mikulas.c | 78 +++++++++++++++++------------------
drivers/md/dm-multisnap-mikulas.h | 6 +--
drivers/md/dm-multisnap-snaps.c | 62 ++++++++++++++--------------
drivers/md/dm-multisnap.h | 2 +-
12 files changed, 163 insertions(+), 169 deletions(-)
diff --git a/drivers/md/dm-multisnap-alloc.c b/drivers/md/dm-multisnap-alloc.c
index dd9b1d4..1e5a2d0 100644
--- a/drivers/md/dm-multisnap-alloc.c
+++ b/drivers/md/dm-multisnap-alloc.c
@@ -26,13 +26,13 @@ void dm_multisnap_create_bitmaps(struct dm_exception_store *ps, chunk_t *writing
(*writing_block)++;
if (*writing_block >= ps->dev_size) {
- DM_MULTISNAP_SET_ERROR(ps->dm, -ENOSPC,
+ DM_MULTISNAP_SET_ERROR(ps->s, -ENOSPC,
("%s: device is too small", __func__));
return;
}
if (*writing_block >= ps->chunk_size << BITS_PER_BYTE_SHIFT) {
- DM_MULTISNAP_SET_ERROR(ps->dm, -ENOSPC,
+ DM_MULTISNAP_SET_ERROR(ps->s, -ENOSPC,
("%s: invalid block to write: %llx",
__func__, (unsigned long long)*writing_block));
return;
@@ -40,7 +40,7 @@ void dm_multisnap_create_bitmaps(struct dm_exception_store *ps, chunk_t *writing
bmp = dm_bufio_new(ps->bufio, *writing_block, &bp);
if (IS_ERR(bmp)) {
- DM_MULTISNAP_SET_ERROR(ps->dm, PTR_ERR(bmp),
+ DM_MULTISNAP_SET_ERROR(ps->s, PTR_ERR(bmp),
("%s: can't create direct bitmap block at %llx",
__func__, (unsigned long long)*writing_block));
return;
@@ -49,9 +49,9 @@ void dm_multisnap_create_bitmaps(struct dm_exception_store *ps, chunk_t *writing
memset(bmp, 0, ps->chunk_size);
for (i = 0; i <= *writing_block; i++) {
generic___set_le_bit(i, bmp);
- dm_multisnap_status_lock(ps->dm);
+ dm_multisnap_status_lock(ps->s);
ps->total_allocated++;
- dm_multisnap_status_unlock(ps->dm);
+ dm_multisnap_status_unlock(ps->s);
cond_resched();
}
ps->bitmap_root = *writing_block;
@@ -81,7 +81,7 @@ void dm_multisnap_extend_bitmaps(struct dm_exception_store *ps, chunk_t new_size
chunk_t c = ps->dev_size;
if (!i) {
dm_multisnap_add_bitmap(ps);
- if (unlikely(dm_multisnap_has_error(ps->dm)))
+ if (unlikely(dm_multisnap_has_error(ps->s)))
return;
}
bmp = dm_multisnap_map_bitmap(ps, bitmap_no, &bp, NULL, NULL);
@@ -331,7 +331,7 @@ bit_find_failed:
bitmap_no = 0;
wrap_around++;
if (wrap_around >= 2) {
- DM_MULTISNAP_SET_ERROR(ps->dm, -ENOSPC,
+ DM_MULTISNAP_SET_ERROR(ps->s, -ENOSPC,
("%s: snapshot overflow", __func__));
return -1;
}
@@ -343,7 +343,7 @@ bit_find_failed:
dm_bufio_release(bp);
c = dm_multisnap_check_allocated_block(ps, results[i]);
- if (dm_multisnap_has_error(ps->dm))
+ if (dm_multisnap_has_error(ps->s))
return -1;
bmp = dm_multisnap_read_block(ps, block, &bp);
@@ -369,7 +369,7 @@ find_another_bit_for_bitmap:
dm_bufio_release(bp);
c = dm_multisnap_check_allocated_block(ps, new_block);
- if (dm_multisnap_has_error(ps->dm))
+ if (dm_multisnap_has_error(ps->s))
return -1;
bmp = dm_multisnap_read_block(ps, block, &bp);
@@ -393,16 +393,16 @@ find_another_bit_for_bitmap:
return -1;
generic___set_le_bit(bit, bmp);
- dm_multisnap_status_lock(ps->dm);
+ dm_multisnap_status_lock(ps->s);
ps->total_allocated++;
- dm_multisnap_status_unlock(ps->dm);
+ dm_multisnap_status_unlock(ps->s);
}
for (i = 0; i < n_blocks; i++)
generic___set_le_bit(results[i] & ((ps->chunk_size << BITS_PER_BYTE_SHIFT) - 1), bmp);
- dm_multisnap_status_lock(ps->dm);
+ dm_multisnap_status_lock(ps->s);
ps->total_allocated += n_blocks;
- dm_multisnap_status_unlock(ps->dm);
+ dm_multisnap_status_unlock(ps->s);
dm_bufio_mark_buffer_dirty(bp);
@@ -488,7 +488,7 @@ void dm_multisnap_free_blocks_immediate(struct dm_exception_store *ps, chunk_t b
return;
if (unlikely(block + n_blocks > ps->dev_size)) {
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: freeing invalid blocks %llx, %x",
__func__, (unsigned long long)block, n_blocks));
return;
@@ -506,9 +506,9 @@ void dm_multisnap_free_blocks_immediate(struct dm_exception_store *ps, chunk_t b
do {
generic___clear_le_bit(block & ((ps->chunk_size << BITS_PER_BYTE_SHIFT) - 1), bmp);
- dm_multisnap_status_lock(ps->dm);
+ dm_multisnap_status_lock(ps->s);
ps->total_allocated--;
- dm_multisnap_status_unlock(ps->dm);
+ dm_multisnap_status_unlock(ps->s);
n_blocks--;
block++;
cond_resched();
diff --git a/drivers/md/dm-multisnap-blocks.c b/drivers/md/dm-multisnap-blocks.c
index 40150e5..d83ee80 100644
--- a/drivers/md/dm-multisnap-blocks.c
+++ b/drivers/md/dm-multisnap-blocks.c
@@ -16,7 +16,7 @@ static int check_invalid(struct dm_exception_store *ps, chunk_t block)
if (unlikely(block >= ps->dev_size) ||
unlikely(block == SB_BLOCK) ||
unlikely(dm_multisnap_is_commit_block(ps, block))) {
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: access to invalid part of the device: "
"%llx, size %llx",
__func__, (unsigned long long)block,
@@ -73,7 +73,7 @@ void *dm_multisnap_read_block(struct dm_exception_store *ps, chunk_t block,
buf = dm_bufio_read(ps->bufio, block, bp);
if (unlikely(IS_ERR(buf))) {
- DM_MULTISNAP_SET_ERROR(ps->dm, PTR_ERR(buf),
+ DM_MULTISNAP_SET_ERROR(ps->s, PTR_ERR(buf),
("%s: error read chunk %llx",
__func__, (unsigned long long)block));
return NULL;
@@ -192,7 +192,7 @@ void *dm_multisnap_duplicate_block(struct dm_exception_store *ps, chunk_t old_ch
t = find_tmp_remap(ps, old_chunk);
if (t) {
if (unlikely(t->bitmap_idx != bitmap_idx)) {
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: bitmap_idx doesn't match, %X != %X",
__func__, t->bitmap_idx, bitmap_idx));
return NULL;
@@ -201,7 +201,7 @@ void *dm_multisnap_duplicate_block(struct dm_exception_store *ps, chunk_t old_ch
t->new = new_chunk;
} else {
if (unlikely(list_empty(&ps->free_tmp_remaps))) {
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: all remap blocks used", __func__));
return NULL;
}
@@ -225,7 +225,7 @@ void *dm_multisnap_duplicate_block(struct dm_exception_store *ps, chunk_t old_ch
buf = dm_bufio_read(ps->bufio, new_chunk, bp);
if (IS_ERR(buf)) {
- DM_MULTISNAP_SET_ERROR(ps->dm, PTR_ERR(buf),
+ DM_MULTISNAP_SET_ERROR(ps->s, PTR_ERR(buf),
("%s: error reading chunk %llx",
__func__, (unsigned long long)new_chunk));
return NULL;
@@ -261,7 +261,7 @@ void *dm_multisnap_make_block(struct dm_exception_store *ps, chunk_t new_chunk,
buf = dm_bufio_new(ps->bufio, new_chunk, bp);
if (unlikely(IS_ERR(buf))) {
- DM_MULTISNAP_SET_ERROR(ps->dm, PTR_ERR(buf),
+ DM_MULTISNAP_SET_ERROR(ps->s, PTR_ERR(buf),
("%s: error creating new block at chunk %llx",
__func__, (unsigned long long)new_chunk));
return NULL;
@@ -324,7 +324,7 @@ int dm_multisnap_stop_cycles(struct dm_exception_store *ps,
struct stop_cycles *cy, chunk_t key)
{
if (unlikely(cy->key == key) && unlikely(cy->count != 0)) {
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: cycle detected at chunk %llx",
__func__, (unsigned long long)key));
return -1;
diff --git a/drivers/md/dm-multisnap-btree.c b/drivers/md/dm-multisnap-btree.c
index 2d73851..626940c 100644
--- a/drivers/md/dm-multisnap-btree.c
+++ b/drivers/md/dm-multisnap-btree.c
@@ -26,7 +26,7 @@ dm_multisnap_read_btnode(struct dm_exception_store *ps, int depth,
if (unlikely(node->signature != BT_SIGNATURE)) {
dm_bufio_release(*bp);
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: bad signature on btree node %llx",
__func__, (unsigned long long)block));
return NULL;
@@ -35,7 +35,7 @@ dm_multisnap_read_btnode(struct dm_exception_store *ps, int depth,
if (unlikely((unsigned)(le32_to_cpu(node->n_entries) - 1) >= ps->btree_entries) ||
(want_entries && unlikely(le32_to_cpu(node->n_entries) != want_entries))) {
dm_bufio_release(*bp);
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: bad number of entries in btree node "
"%llx: %x, wanted %x", __func__,
(unsigned long long)block,
@@ -92,14 +92,14 @@ void dm_multisnap_create_btree(struct dm_exception_store *ps, chunk_t *writing_b
(*writing_block)++;
if (*writing_block >= ps->dev_size) {
- DM_MULTISNAP_SET_ERROR(ps->dm, -ENOSPC,
+ DM_MULTISNAP_SET_ERROR(ps->s, -ENOSPC,
("%s: device is too small", __func__));
return;
}
node = dm_bufio_new(ps->bufio, *writing_block, &bp);
if (IS_ERR(node)) {
- DM_MULTISNAP_SET_ERROR(ps->dm, PTR_ERR(node),
+ DM_MULTISNAP_SET_ERROR(ps->s, PTR_ERR(node),
("%s: cannot create direct bitmap block at %llx",
__func__, (unsigned long long)*writing_block));
return;
@@ -219,7 +219,7 @@ static int walk_btree(struct dm_exception_store *ps, struct bt_key *key,
if (unlikely(last_chunk != want_last_chunk) ||
unlikely(last_snapid != want_last_snapid)) {
dm_bufio_release(*bp);
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: invalid last entry in node %llx/%llx: "
"last_chunk %llx, want_last_chunk %llx, last_snapid: %llx, "
"want_last_snapid: %llx, searching for %llx, %llx-%llx",
@@ -327,7 +327,7 @@ list_next_node:
r = compare_key(&node->entries[idx], key);
if (unlikely(r <= 0)) {
dm_bufio_release(bp);
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: non-monotonic btree: node "
"%llx, index %x", __func__,
(unsigned long long)path[depth].block, idx));
@@ -374,7 +374,7 @@ void dm_multisnap_add_to_btree(struct dm_exception_store *ps, struct bt_key *key
if (unlikely(r)) {
if (r > 0) {
dm_bufio_release(bp);
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: adding key that already exists: "
"%llx, %llx-%llx", __func__,
(unsigned long long)key->chunk,
@@ -450,7 +450,7 @@ go_up:
}
if (ps->bt_depth >= MAX_BT_DEPTH) {
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: max b+-tree depth reached", __func__));
return;
}
@@ -508,7 +508,7 @@ static void dm_multisnap_fixup_backlimits(struct dm_exception_store *ps,
unlikely(mikulas_snapid_to_cpu(node->entries[idx].snap_from) != old_snapid) ||
unlikely(mikulas_snapid_to_cpu(node->entries[idx].snap_to) != old_snapid)) {
dm_bufio_release(bp);
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: btree limit does not match, block %llx, "
"idx %x, orig_chunk %llx, snap_from %llx, "
"snap_to %llx, want %llx, %llx",
@@ -531,7 +531,7 @@ static void dm_multisnap_fixup_backlimits(struct dm_exception_store *ps,
if (path[depth].idx != path[depth].n_entries - 1)
return;
}
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: the last entry modified, %llx/%llx -> %llx/%llx",
__func__,
(unsigned long long)old_chunk,
@@ -560,7 +560,7 @@ void dm_multisnap_restrict_btree_entry(struct dm_exception_store *ps, struct bt_
if (!r) {
dm_bufio_release(bp);
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: unknown key: %llx, %llx-%llx",
__func__,
(unsigned long long)key->chunk,
@@ -584,7 +584,7 @@ void dm_multisnap_restrict_btree_entry(struct dm_exception_store *ps, struct bt_
entry->snap_to = cpu_to_mikulas_snapid(new_to);
} else {
dm_bufio_release(bp);
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: invalid range to restrict: "
"%llx, %llx-%llx %llx-%llx",
__func__,
@@ -623,7 +623,7 @@ void dm_multisnap_extend_btree_entry(struct dm_exception_store *ps, struct bt_ke
if (!r) {
dm_bufio_release(bp);
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: unknown key: %llx, %llx-%llx",
__func__,
(unsigned long long)key->chunk,
@@ -679,7 +679,7 @@ void dm_multisnap_delete_from_btree(struct dm_exception_store *ps, struct bt_key
if (unlikely(!r)) {
dm_bufio_release(bp);
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: unknown key: %llx, %llx-%llx",
__func__,
(unsigned long long)key->chunk,
@@ -696,7 +696,7 @@ void dm_multisnap_delete_from_btree(struct dm_exception_store *ps, struct bt_key
to = mikulas_snapid_to_cpu(entry->snap_to);
if (unlikely(from != key->snap_from) || unlikely(to != key->snap_to)) {
dm_bufio_release(bp);
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: invalid range to restrict: "
"%llx, %llx-%llx %llx-%llx",
__func__,
@@ -711,7 +711,7 @@ void dm_multisnap_delete_from_btree(struct dm_exception_store *ps, struct bt_key
while (unlikely((n_entries = le32_to_cpu(node->n_entries)) == 1)) {
dm_bufio_release(bp);
if (unlikely(!depth)) {
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: b-tree is empty", __func__));
return;
}
@@ -805,7 +805,7 @@ void dm_multisnap_bt_finalize_tmp_remap(struct dm_exception_store *ps,
(unsigned long long)key.snap_from);
for (i = 0; i < ps->bt_depth; i++)
DMERR("path[%d]: %llx/%x", i, (unsigned long long)path[i].block, path[i].idx);
- dm_multisnap_set_error(ps->dm, -EFSERROR);
+ dm_multisnap_set_error(ps->s, -EFSERROR);
return;
found:
diff --git a/drivers/md/dm-multisnap-commit.c b/drivers/md/dm-multisnap-commit.c
index 61bb82f..57c72c5 100644
--- a/drivers/md/dm-multisnap-commit.c
+++ b/drivers/md/dm-multisnap-commit.c
@@ -17,7 +17,7 @@ static void dm_multisnap_finalize_tmp_remaps(struct dm_exception_store *ps)
int i;
while (ps->n_used_tmp_remaps) {
- if (dm_multisnap_has_error(ps->dm))
+ if (dm_multisnap_has_error(ps->s))
return;
if (ps->n_used_tmp_remaps < N_REMAPS - 1) {
/*
@@ -41,14 +41,14 @@ static void dm_multisnap_finalize_tmp_remaps(struct dm_exception_store *ps)
dm_multisnap_free_tmp_remap(ps, t);
continue;
} else {
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: no bitmap tmp_remaps, n_used_tmp_remaps %u",
__func__, ps->n_used_tmp_remaps));
return;
}
}
- if (dm_multisnap_has_error(ps->dm))
+ if (dm_multisnap_has_error(ps->s))
return;
for (i = ps->n_preallocated_blocks - 1; i >= 0; i--)
@@ -84,7 +84,7 @@ void dm_multisnap_prepare_for_commit(struct dm_exception_store *ps)
r = dm_bufio_write_dirty_buffers(ps->bufio);
if (unlikely(r < 0)) {
- DM_MULTISNAP_SET_ERROR(ps->dm, r,
+ DM_MULTISNAP_SET_ERROR(ps->s, r,
("%s: error writing data", __func__));
return;
}
@@ -114,8 +114,8 @@ void dm_multisnap_commit(struct dm_exception_store *ps)
dm_multisnap_flush_freelist_before_commit(ps);
- if (dm_multisnap_has_error(ps->dm)) {
- if (!dm_multisnap_drop_on_error(ps->dm))
+ if (dm_multisnap_has_error(ps->s)) {
+ if (!dm_multisnap_drop_on_error(ps->s))
return;
sb = dm_bufio_read(ps->bufio, SB_BLOCK, &bp);
@@ -123,7 +123,7 @@ void dm_multisnap_commit(struct dm_exception_store *ps)
return;
if (!le32_to_cpu(sb->error)) {
- sb->error = cpu_to_le32(dm_multisnap_has_error(ps->dm));
+ sb->error = cpu_to_le32(dm_multisnap_has_error(ps->s));
dm_bufio_mark_buffer_dirty(bp);
}
@@ -139,7 +139,7 @@ void dm_multisnap_commit(struct dm_exception_store *ps)
r = dm_bufio_write_dirty_buffers(ps->bufio);
if (unlikely(r < 0)) {
- DM_MULTISNAP_SET_ERROR(ps->dm, r,
+ DM_MULTISNAP_SET_ERROR(ps->s, r,
("%s: error writing data", __func__));
return;
}
@@ -156,7 +156,7 @@ void dm_multisnap_commit(struct dm_exception_store *ps)
cb = dm_bufio_new(ps->bufio, cb_addr, &bp);
if (IS_ERR(cb)) {
- DM_MULTISNAP_SET_ERROR(ps->dm, PTR_ERR(cb),
+ DM_MULTISNAP_SET_ERROR(ps->s, PTR_ERR(cb),
("%s: can't allocate new commit block at %llx",
__func__, (unsigned long long)cb_addr));
return;
@@ -202,7 +202,7 @@ void dm_multisnap_commit(struct dm_exception_store *ps)
dm_bufio_release(bp);
r = dm_bufio_write_dirty_buffers(ps->bufio);
if (unlikely(r < 0)) {
- DM_MULTISNAP_SET_ERROR(ps->dm, r,
+ DM_MULTISNAP_SET_ERROR(ps->s, r,
("%s: can't write commit block at %llx",
__func__, (unsigned long long)cb_addr));
return;
@@ -214,14 +214,14 @@ void dm_multisnap_commit(struct dm_exception_store *ps)
sb = dm_bufio_read(ps->bufio, SB_BLOCK, &bp);
if (IS_ERR(sb)) {
- DM_MULTISNAP_SET_ERROR(ps->dm, PTR_ERR(sb),
+ DM_MULTISNAP_SET_ERROR(ps->s, PTR_ERR(sb),
("%s: can't read super block", __func__));
return;
}
if (unlikely(sb->signature != SB_SIGNATURE)) {
dm_bufio_release(bp);
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: invalid super block signature when committing",
__func__));
return;
@@ -233,7 +233,7 @@ void dm_multisnap_commit(struct dm_exception_store *ps)
dm_bufio_release(bp);
r = dm_bufio_write_dirty_buffers(ps->bufio);
if (unlikely(r < 0)) {
- DM_MULTISNAP_SET_ERROR(ps->dm, r, ("%s: can't write super block", __func__));
+ DM_MULTISNAP_SET_ERROR(ps->s, r, ("%s: can't write super block", __func__));
return;
}
diff --git a/drivers/md/dm-multisnap-daniel.c b/drivers/md/dm-multisnap-daniel.c
index 0d6c1b0..4cde432 100644
--- a/drivers/md/dm-multisnap-daniel.c
+++ b/drivers/md/dm-multisnap-daniel.c
@@ -106,7 +106,7 @@ struct commit_callback {
* The top level structure for a persistent exception store.
*/
struct dm_exception_store {
- struct dm_multisnap *dm;
+ struct dm_multisnap *s;
void *area;
@@ -178,7 +178,7 @@ static void free_area(struct dm_exception_store *ps)
static int chunk_io(struct dm_exception_store *ps, chunk_t chunk, int rw, void *data)
{
struct dm_io_region where = {
- .bdev = dm_multisnap_snapshot_bdev(ps->dm),
+ .bdev = dm_multisnap_snapshot_bdev(ps->s),
.sector = (ps->chunk_size >> SECTOR_SHIFT) * chunk,
.count = (ps->chunk_size >> SECTOR_SHIFT),
};
@@ -192,7 +192,7 @@ static int chunk_io(struct dm_exception_store *ps, chunk_t chunk, int rw, void *
int r = dm_io(&io_req, 1, &where, NULL);
if (r) {
- DM_MULTISNAP_SET_ERROR(ps->dm, r, ("%s: io error when %s %llx: %d",
+ DM_MULTISNAP_SET_ERROR(ps->s, r, ("%s: io error when %s %llx: %d",
__func__,
rw == WRITE ? "writing" : "reading",
(unsigned long long)chunk, r));
@@ -208,8 +208,8 @@ static int write_header(struct dm_exception_store *ps)
dh = (struct disk_header *) ps->area;
dh->magic = cpu_to_le32(SNAP_MAGIC);
- dh->valid = cpu_to_le32(dm_multisnap_drop_on_error(ps->dm) &&
- dm_multisnap_has_error(ps->dm));
+ dh->valid = cpu_to_le32(dm_multisnap_drop_on_error(ps->s) &&
+ dm_multisnap_has_error(ps->s));
dh->version = cpu_to_le32(ps->version);
dh->chunk_size = cpu_to_le32(ps->chunk_size >> SECTOR_SHIFT);
@@ -282,7 +282,7 @@ static struct chunk_buffer *alloc_chunk_buffer(struct dm_exception_store *ps)
/* Mikulas: changed to GFP_NOIO */
b = kzalloc(sizeof(*b), GFP_NOIO);
if (!b) {
- DM_MULTISNAP_SET_ERROR(ps->dm, -ENOMEM,
+ DM_MULTISNAP_SET_ERROR(ps->s, -ENOMEM,
("%s %d: out of memory", __func__, __LINE__));
return NULL;
}
@@ -291,7 +291,7 @@ static struct chunk_buffer *alloc_chunk_buffer(struct dm_exception_store *ps)
b->data = __vmalloc(ps->chunk_size, GFP_NOIO | __GFP_HIGHMEM, PAGE_KERNEL);
if (!b->data) {
kfree(b);
- DM_MULTISNAP_SET_ERROR(ps->dm, -ENOMEM,
+ DM_MULTISNAP_SET_ERROR(ps->s, -ENOMEM,
("%s %d: out of memory", __func__, __LINE__));
return NULL;
}
@@ -360,7 +360,7 @@ again:
/* todo: check # free chunks */
if (start_chunk == ps->cur_bitmap_chunk) {
- DM_MULTISNAP_SET_ERROR(ps->dm, -ENOSPC,
+ DM_MULTISNAP_SET_ERROR(ps->s, -ENOSPC,
("%s %d: fail to find a new chunk",
__func__, __LINE__));
return 0;
@@ -385,7 +385,7 @@ static int shared_free_chunk(struct dm_exception_store *ps, chunk_t chunk)
chunk_io(ps, ps->cur_bitmap_chunk, READ, ps->bitmap);
if (!ext2_test_bit(idx, ps->bitmap)) {
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: trying to free free block %lld %lld %u", __func__,
(unsigned long long)chunk,
(unsigned long long)ps->cur_bitmap_chunk, idx));
@@ -578,7 +578,7 @@ static int shared_read_header(struct dm_exception_store *ps, int *new_snapshot)
*new_snapshot = 0;
if (le32_to_cpu(dh->valid))
- dm_multisnap_set_error(ps->dm, -EINVAL);
+ dm_multisnap_set_error(ps->s, -EINVAL);
ps->version = le32_to_cpu(dh->version);
ps->root_tree_chunk = le64_to_cpu(dh->root_tree_chunk);
@@ -616,7 +616,7 @@ static void shared_drop_header(struct dm_exception_store *ps)
static int shared_read_metadata(struct dm_exception_store *ps, char **error)
{
int i, r, uninitialized_var(new_snapshot);
- size_t size = i_size_read(dm_multisnap_snapshot_bdev(ps->dm)->bd_inode);
+ size_t size = i_size_read(dm_multisnap_snapshot_bdev(ps->s)->bd_inode);
chunk_t bitmap_chunk_bytes;
unsigned chunk_bytes = ps->chunk_size;
@@ -1121,7 +1121,7 @@ static void check_leaf(struct dm_exception_store *ps, struct leaf *leaf, u64 sna
for (p = emap(leaf, i); p < emap(leaf, i+1); p++) {
/* !!! should also check for any zero sharemaps here */
if (le64_to_cpu(p->share) & snapmask) {
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: nonzero bits %016llx outside snapmask %016llx",
__func__,
(unsigned long long)p->share,
@@ -1444,7 +1444,7 @@ found:
return 0;
}
-static int shared_init(struct dm_multisnap *dm, struct dm_exception_store **sp,
+static int shared_init(struct dm_multisnap *s, struct dm_exception_store **sp,
unsigned argc, char **argv, char **error)
{
int r;
@@ -1458,8 +1458,8 @@ static int shared_init(struct dm_multisnap *dm, struct dm_exception_store **sp,
}
*sp = ps;
- ps->dm = dm;
- ps->chunk_size = dm_multisnap_chunk_size(dm);
+ ps->s = s;
+ ps->chunk_size = dm_multisnap_chunk_size(s);
ps->chunk_shift = ffs(ps->chunk_size) - 1;
if (argc != 0) {
@@ -1631,7 +1631,7 @@ static void shared_add_next_remap(struct dm_exception_store *ps,
ret = origin_chunk_unique(buffer2leaf(cb), chunk, ps->snapmask);
if (ret) {
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s %d: bug %llu %d", __func__, __LINE__,
(unsigned long long)chunk, ret));
return;
diff --git a/drivers/md/dm-multisnap-delete.c b/drivers/md/dm-multisnap-delete.c
index f8a5f67..3644629 100644
--- a/drivers/md/dm-multisnap-delete.c
+++ b/drivers/md/dm-multisnap-delete.c
@@ -87,12 +87,12 @@ static void delete_step(struct dm_exception_store *ps)
ps->flags &= ~DM_MULTISNAP_FLAG_DELETING;
/* If we finished the job and there is no pending I/O, commit */
- if (dm_multisnap_can_commit(ps->dm))
- dm_multisnap_call_commit(ps->dm);
+ if (dm_multisnap_can_commit(ps->s))
+ dm_multisnap_call_commit(ps->s);
return;
case RET_DO_FREE:
- if (unlikely(dm_multisnap_has_error(ps->dm)))
+ if (unlikely(dm_multisnap_has_error(ps->s)))
return;
dm_multisnap_delete_from_btree(ps, &lc.key);
@@ -103,10 +103,10 @@ static void delete_step(struct dm_exception_store *ps)
/* fall through */
case RET_RESCHEDULE:
- if (dm_multisnap_can_commit(ps->dm)) {
+ if (dm_multisnap_can_commit(ps->s)) {
if (++ps->delete_commit_count >= COMMIT_AFTER) {
ps->delete_commit_count = 0;
- dm_multisnap_call_commit(ps->dm);
+ dm_multisnap_call_commit(ps->s);
}
}
return;
@@ -120,7 +120,7 @@ static void delete_step(struct dm_exception_store *ps)
void dm_multisnap_background_delete(struct dm_exception_store *ps,
struct dm_multisnap_background_work *bw)
{
- if (unlikely(dm_multisnap_has_error(ps->dm)))
+ if (unlikely(dm_multisnap_has_error(ps->s)))
return;
if (ps->flags & DM_MULTISNAP_FLAG_DELETING) {
@@ -133,5 +133,5 @@ void dm_multisnap_background_delete(struct dm_exception_store *ps,
} else
return;
- dm_multisnap_queue_work(ps->dm, &ps->delete_work);
+ dm_multisnap_queue_work(ps->s, &ps->delete_work);
}
diff --git a/drivers/md/dm-multisnap-freelist.c b/drivers/md/dm-multisnap-freelist.c
index 57e5a1e..2eb6da6 100644
--- a/drivers/md/dm-multisnap-freelist.c
+++ b/drivers/md/dm-multisnap-freelist.c
@@ -37,7 +37,7 @@ static int add_to_freelist(struct dm_exception_store *ps, chunk_t block, unsigne
unsigned r = le16_to_cpu(fl->entries[i].run_length) & FREELIST_RL_MASK;
unsigned f = le16_to_cpu(fl->entries[i].run_length) & FREELIST_DATA_FLAG;
if (block >= x && block < x + r) {
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: freeing already free block %llx (%llx - %x)",
__func__,
(unsigned long long)block,
@@ -77,21 +77,21 @@ read_freelist(struct dm_exception_store *ps, chunk_t block, struct dm_buffer **b
struct dm_multisnap_freelist *fl;
fl = dm_bufio_read(ps->bufio, block, bp);
if (IS_ERR(fl)) {
- DM_MULTISNAP_SET_ERROR(ps->dm, PTR_ERR(fl),
+ DM_MULTISNAP_SET_ERROR(ps->s, PTR_ERR(fl),
("%s: can't read freelist block %llx",
__func__, (unsigned long long)block));
return NULL;
}
if (fl->signature != FL_SIGNATURE) {
dm_bufio_release(*bp);
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: bad signature freelist block %llx",
__func__, (unsigned long long)block));
return NULL;
}
if (le32_to_cpu(fl->n_entries) > dm_multisnap_freelist_entries(ps->chunk_size)) {
dm_bufio_release(*bp);
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: bad number of entries in freelist block %llx",
__func__, (unsigned long long)block));
return NULL;
@@ -114,7 +114,7 @@ static void alloc_write_freelist(struct dm_exception_store *ps)
fl = dm_bufio_new(ps->bufio, new_block, &bp);
if (IS_ERR(fl)) {
- DM_MULTISNAP_SET_ERROR(ps->dm, PTR_ERR(fl),
+ DM_MULTISNAP_SET_ERROR(ps->s, PTR_ERR(fl),
("%s: can't make new freelist block %llx",
__func__, (unsigned long long)new_block));
return;
@@ -140,7 +140,7 @@ void dm_multisnap_free_block(struct dm_exception_store *ps, chunk_t block, unsig
return;
alloc_write_freelist(ps);
- if (unlikely(dm_multisnap_has_error(ps->dm)))
+ if (unlikely(dm_multisnap_has_error(ps->s)))
return;
if (likely(add_to_freelist(ps, block, flags)))
@@ -229,7 +229,7 @@ void dm_multisnap_flush_freelist_before_commit(struct dm_exception_store *ps)
{
alloc_write_freelist(ps);
- if (dm_multisnap_has_error(ps->dm))
+ if (dm_multisnap_has_error(ps->s))
return;
ps->freelist_ptr = read_48(ps->freelist, backlink);
@@ -248,9 +248,9 @@ static void free_blocks_in_freelist(struct dm_exception_store *ps,
unsigned f = le16_to_cpu(fl->entries[i].run_length) & FREELIST_DATA_FLAG;
dm_multisnap_free_blocks_immediate(ps, x, r);
if (likely(f & FREELIST_DATA_FLAG)) {
- dm_multisnap_status_lock(ps->dm);
+ dm_multisnap_status_lock(ps->s);
ps->data_allocated -= r;
- dm_multisnap_status_unlock(ps->dm);
+ dm_multisnap_status_unlock(ps->s);
}
cond_resched();
}
@@ -277,7 +277,7 @@ void dm_multisnap_load_freelist(struct dm_exception_store *ps)
if (dm_multisnap_stop_cycles(ps, &cy, fl_block))
break;
- if (dm_multisnap_has_error(ps->dm))
+ if (dm_multisnap_has_error(ps->s))
break;
fl = read_freelist(ps, fl_block, &bp);
diff --git a/drivers/md/dm-multisnap-io.c b/drivers/md/dm-multisnap-io.c
index 790b636..398184c 100644
--- a/drivers/md/dm-multisnap-io.c
+++ b/drivers/md/dm-multisnap-io.c
@@ -104,7 +104,7 @@ int dm_multisnap_query_next_remap(struct dm_exception_store *ps, chunk_t chunk)
while (dm_multisnap_find_next_snapid_range(ps, ps->query_snapid, &from, &to)) {
struct bt_key key;
next_btree_search:
- if (dm_multisnap_has_error(ps->dm))
+ if (dm_multisnap_has_error(ps->s))
return -1;
key.chunk = chunk;
key.snap_from = from;
@@ -158,9 +158,9 @@ void dm_multisnap_add_next_remap(struct dm_exception_store *ps,
if (unlikely(r < 0))
return;
- dm_multisnap_status_lock(ps->dm);
+ dm_multisnap_status_lock(ps->s);
ps->data_allocated++;
- dm_multisnap_status_unlock(ps->dm);
+ dm_multisnap_status_unlock(ps->s);
dm_multisnap_add_to_btree(ps, &ps->query_new_key, *new_chunk);
dm_multisnap_transition_mark(ps);
@@ -184,14 +184,14 @@ void dm_multisnap_make_chunk_writeable(struct dm_exception_store *ps,
if (unlikely(r < 0))
return;
- dm_multisnap_status_lock(ps->dm);
+ dm_multisnap_status_lock(ps->s);
ps->data_allocated++;
- dm_multisnap_status_unlock(ps->dm);
+ dm_multisnap_status_unlock(ps->s);
dm_multisnap_restrict_btree_entry(ps, &ps->query_new_key);
dm_multisnap_transition_mark(ps);
- if (unlikely(dm_multisnap_has_error(ps->dm)))
+ if (unlikely(dm_multisnap_has_error(ps->s)))
return;
dm_multisnap_add_to_btree(ps, &ps->query_new_key, *new_chunk);
diff --git a/drivers/md/dm-multisnap-mikulas.c b/drivers/md/dm-multisnap-mikulas.c
index 5ad2035..076068a 100644
--- a/drivers/md/dm-multisnap-mikulas.c
+++ b/drivers/md/dm-multisnap-mikulas.c
@@ -62,7 +62,7 @@ static void load_commit_block(struct dm_exception_store *ps)
cb = dm_bufio_read(ps->bufio, ps->valid_commit_block, &bp);
if (IS_ERR(cb)) {
- DM_MULTISNAP_SET_ERROR(ps->dm, PTR_ERR(cb),
+ DM_MULTISNAP_SET_ERROR(ps->s, PTR_ERR(cb),
("%s: can't re-read commit block %llx",
__func__,
(unsigned long long)ps->valid_commit_block));
@@ -70,7 +70,7 @@ static void load_commit_block(struct dm_exception_store *ps)
}
if (cb->signature != CB_SIGNATURE) {
dm_bufio_release(bp);
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: bad signature when re-reading commit block %llx",
__func__,
(unsigned long long)ps->valid_commit_block));
@@ -94,7 +94,7 @@ static void load_commit_block(struct dm_exception_store *ps)
if (ps->bt_depth > MAX_BT_DEPTH || !ps->bt_depth) {
dm_bufio_release(bp);
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: invalid b+-tree depth in commit block %llx",
__func__, (unsigned long long)ps->valid_commit_block));
return;
@@ -122,14 +122,14 @@ static void load_commit_block(struct dm_exception_store *ps)
dm_bufio_release(bp);
if ((chunk_t)(dev_size + ps->cb_stride) < (chunk_t)dev_size) {
- DM_MULTISNAP_SET_ERROR(ps->dm, -ERANGE,
+ DM_MULTISNAP_SET_ERROR(ps->s, -ERANGE,
("%s: device is too large. Compile kernel with 64-bit sector numbers",
__func__));
return;
}
bitmap_depth = dm_multisnap_bitmap_depth(ps->chunk_shift, dev_size);
if (bitmap_depth < 0) {
- DM_MULTISNAP_SET_ERROR(ps->dm, bitmap_depth,
+ DM_MULTISNAP_SET_ERROR(ps->s, bitmap_depth,
("%s: device is too large", __func__));
return;
}
@@ -159,14 +159,14 @@ static void find_commit_block(struct dm_exception_store *ps)
try_next:
cb = dm_bufio_read(ps->bufio, cb_addr, &bp);
if (IS_ERR(cb)) {
- DM_MULTISNAP_SET_ERROR(ps->dm, PTR_ERR(cb),
+ DM_MULTISNAP_SET_ERROR(ps->s, PTR_ERR(cb),
("%s: can't read commit block %llx",
__func__, (unsigned long long)cb_addr));
return;
}
if (cb->signature != CB_SIGNATURE) {
dm_bufio_release(bp);
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: bad signature on commit block %llx",
__func__, (unsigned long long)cb_addr));
return;
@@ -186,7 +186,7 @@ try_next:
}
}
if (!ps->valid_commit_block) {
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: no valid commit block", __func__));
return;
}
@@ -198,7 +198,7 @@ try_next:
static int get_size(struct dm_exception_store *ps, chunk_t *size)
{
__u64 dev_size;
- dev_size = i_size_read(dm_multisnap_snapshot_bdev(ps->dm)->bd_inode) >> ps->chunk_shift;
+ dev_size = i_size_read(dm_multisnap_snapshot_bdev(ps->s)->bd_inode) >> ps->chunk_shift;
*size = dev_size;
if ((chunk_t)(dev_size + ps->cb_stride) < dev_size)
return -EFBIG;
@@ -222,7 +222,7 @@ static void initialize_device(struct dm_exception_store *ps)
r = get_size(ps, &ps->dev_size);
if (r) {
- DM_MULTISNAP_SET_ERROR(ps->dm, r,
+ DM_MULTISNAP_SET_ERROR(ps->s, r,
("%s: device is too large. Compile kernel with 64-bit sector numbers",
__func__));
return;
@@ -235,26 +235,26 @@ static void initialize_device(struct dm_exception_store *ps)
/* Write btree */
dm_multisnap_create_btree(ps, &block_to_write);
- if (dm_multisnap_has_error(ps->dm))
+ if (dm_multisnap_has_error(ps->s))
return;
/* Write bitmaps */
dm_multisnap_create_bitmaps(ps, &block_to_write);
- if (dm_multisnap_has_error(ps->dm))
+ if (dm_multisnap_has_error(ps->s))
return;
ps->dev_size = block_to_write;
/* Write commit blocks */
if (FIRST_CB_BLOCK >= ps->dev_size) {
- DM_MULTISNAP_SET_ERROR(ps->dm, -ENOSPC,
+ DM_MULTISNAP_SET_ERROR(ps->s, -ENOSPC,
("%s: device is too small", __func__));
return;
}
for (cb_block = FIRST_CB_BLOCK; cb_block < ps->dev_size; cb_block += ps->cb_stride) {
cb = dm_bufio_new(ps->bufio, cb_block, &bp);
if (IS_ERR(cb)) {
- DM_MULTISNAP_SET_ERROR(ps->dm, PTR_ERR(cb),
+ DM_MULTISNAP_SET_ERROR(ps->s, PTR_ERR(cb),
("%s: can't allocate commit block at %llx",
__func__, (unsigned long long)cb_block));
return;
@@ -279,7 +279,7 @@ static void initialize_device(struct dm_exception_store *ps)
}
r = dm_bufio_write_dirty_buffers(ps->bufio);
if (r) {
- DM_MULTISNAP_SET_ERROR(ps->dm, r,
+ DM_MULTISNAP_SET_ERROR(ps->s, r,
("%s: write error when initializing device", __func__));
return;
}
@@ -287,7 +287,7 @@ static void initialize_device(struct dm_exception_store *ps)
/* Write super block */
sb = dm_bufio_new(ps->bufio, SB_BLOCK, &bp);
if (IS_ERR(sb)) {
- DM_MULTISNAP_SET_ERROR(ps->dm, PTR_ERR(sb),
+ DM_MULTISNAP_SET_ERROR(ps->s, PTR_ERR(sb),
("%s: can't allocate super block", __func__));
return;
}
@@ -301,7 +301,7 @@ static void initialize_device(struct dm_exception_store *ps)
dm_bufio_release(bp);
r = dm_bufio_write_dirty_buffers(ps->bufio);
if (r) {
- DM_MULTISNAP_SET_ERROR(ps->dm, r,
+ DM_MULTISNAP_SET_ERROR(ps->s, r,
("%s: can't write super block", __func__));
return;
}
@@ -325,7 +325,7 @@ static void extend_exception_store(struct dm_exception_store *ps, chunk_t new_si
continue;
cb = dm_bufio_new(ps->bufio, cb_block, &bp);
if (IS_ERR(cb)) {
- DM_MULTISNAP_SET_ERROR(ps->dm, PTR_ERR(cb),
+ DM_MULTISNAP_SET_ERROR(ps->s, PTR_ERR(cb),
("%s: can't allocate commit block at %llx",
__func__, (unsigned long long)cb_block));
return;
@@ -384,9 +384,9 @@ re_read:
}
dm_bufio_release(bp);
initialize_device(ps);
- if (dm_multisnap_has_error(ps->dm)) {
+ if (dm_multisnap_has_error(ps->s)) {
*error = "Can't initialize device";
- return dm_multisnap_has_error(ps->dm);
+ return dm_multisnap_has_error(ps->s);
}
initialized = 1;
goto re_read;
@@ -408,36 +408,36 @@ re_read:
find_commit_block(ps);
- if (dm_multisnap_has_error(ps->dm)) {
- if (dm_multisnap_drop_on_error(ps->dm))
+ if (dm_multisnap_has_error(ps->s)) {
+ if (dm_multisnap_drop_on_error(ps->s))
return 0;
*error = "Unable to find commit block";
- return dm_multisnap_has_error(ps->dm);
+ return dm_multisnap_has_error(ps->s);
}
load_commit_block(ps);
- if (dm_multisnap_has_error(ps->dm)) {
- if (dm_multisnap_drop_on_error(ps->dm))
+ if (dm_multisnap_has_error(ps->s)) {
+ if (dm_multisnap_drop_on_error(ps->s))
return 0;
*error = "Unable to load commit block";
- return dm_multisnap_has_error(ps->dm);
+ return dm_multisnap_has_error(ps->s);
}
if (e < 0) {
/* Don't read the B+-tree if there was an error */
- DM_MULTISNAP_SET_ERROR(ps->dm, e,
+ DM_MULTISNAP_SET_ERROR(ps->s, e,
("%s: activating invalidated snapshot store, error %d",
__func__, e));
return 0;
}
dm_multisnap_read_snapshots(ps);
- if (dm_multisnap_has_error(ps->dm)) {
- if (dm_multisnap_drop_on_error(ps->dm))
+ if (dm_multisnap_has_error(ps->s)) {
+ if (dm_multisnap_drop_on_error(ps->s))
return 0;
*error = "Could not read snapshot list";
- return dm_multisnap_has_error(ps->dm);
+ return dm_multisnap_has_error(ps->s);
}
return 0;
@@ -459,7 +459,7 @@ static void dm_multisnap_mikulas_lock_acquired(struct dm_exception_store *ps, in
int r;
chunk_t new_size;
- if (!dm_multisnap_can_commit(ps->dm))
+ if (!dm_multisnap_can_commit(ps->s))
return;
r = get_size(ps, &new_size);
@@ -468,7 +468,7 @@ static void dm_multisnap_mikulas_lock_acquired(struct dm_exception_store *ps, in
if (unlikely(new_size != ps->dev_size)) {
if (unlikely(new_size < ps->dev_size)) {
- DM_MULTISNAP_SET_ERROR(ps->dm, -EINVAL,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EINVAL,
("%s: device shrank", __func__));
return;
}
@@ -537,9 +537,7 @@ static void print_bitmaps(struct dm_exception_store *ps)
* Parse arguments, allocate structures and call read_super to read the data
* from the disk.
*/
-/* FIXME rename all 'struct dm_multisnap *dm' to be using 's' for snapshot, e.g.: */
-/* dm-multisnap-private.h:dm_multisnap_snap uses 'struct dm_multisnap *s' */
-static int dm_multisnap_mikulas_init(struct dm_multisnap *dm,
+static int dm_multisnap_mikulas_init(struct dm_multisnap *s,
struct dm_exception_store **psp,
unsigned argc, char **argv, char **error)
{
@@ -554,8 +552,8 @@ static int dm_multisnap_mikulas_init(struct dm_multisnap *dm,
}
*psp = ps;
- ps->dm = dm;
- ps->chunk_size = dm_multisnap_chunk_size(dm);
+ ps->s = s;
+ ps->chunk_size = dm_multisnap_chunk_size(s);
ps->chunk_shift = ffs(ps->chunk_size) - 1;
ps->active_snapshots = RB_ROOT;
@@ -609,7 +607,7 @@ static int dm_multisnap_mikulas_init(struct dm_multisnap *dm,
goto bad_freelist;
}
- ps->bufio = dm_bufio_client_create(dm_multisnap_snapshot_bdev(ps->dm),
+ ps->bufio = dm_bufio_client_create(dm_multisnap_snapshot_bdev(ps->s),
ps->chunk_size);
if (IS_ERR(ps->bufio)) {
*error = "Can't create bufio client";
@@ -623,7 +621,7 @@ static int dm_multisnap_mikulas_init(struct dm_multisnap *dm,
if (ps->flags & (DM_MULTISNAP_FLAG_DELETING |
DM_MULTISNAP_FLAG_PENDING_DELETE))
- dm_multisnap_queue_work(ps->dm, &ps->delete_work);
+ dm_multisnap_queue_work(ps->s, &ps->delete_work);
/* Extend the snapshot store */
dm_multisnap_mikulas_lock_acquired(ps, 0);
@@ -657,7 +655,7 @@ static void dm_multisnap_mikulas_exit(struct dm_exception_store *ps)
{
int i;
- dm_multisnap_cancel_work(ps->dm, &ps->delete_work);
+ dm_multisnap_cancel_work(ps->s, &ps->delete_work);
i = 0;
while (!list_empty(&ps->used_bitmap_tmp_remaps)) {
diff --git a/drivers/md/dm-multisnap-mikulas.h b/drivers/md/dm-multisnap-mikulas.h
index 3fd78b0..446f37a 100644
--- a/drivers/md/dm-multisnap-mikulas.h
+++ b/drivers/md/dm-multisnap-mikulas.h
@@ -60,12 +60,8 @@ struct path_element {
unsigned n_entries;
};
-/* FIXME reusing 'dm_exception_store' name lends itself to confusion with legacy snapshots? */
-/* FIXME not to mention, each multisnap stores' 'dm_exception_store' is different */
-/* FIXME rename: dm_multisnap_persistent_exception_store? */
struct dm_exception_store {
- /* FIXME rename: multisnap? or just 's' for snapshot? */
- struct dm_multisnap *dm;
+ struct dm_multisnap *s;
/* FIXME rename: bufio_client? */
struct dm_bufio_client *bufio;
diff --git a/drivers/md/dm-multisnap-snaps.c b/drivers/md/dm-multisnap-snaps.c
index dbac594..8bde4c4 100644
--- a/drivers/md/dm-multisnap-snaps.c
+++ b/drivers/md/dm-multisnap-snaps.c
@@ -48,7 +48,7 @@ go_left:
goto go_left;
break;
} else {
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: inserting overlapping entry: "
"(%llx,%llx) overlaps (%llx,%llx)",
__func__,
@@ -64,11 +64,11 @@ go_left:
if (!add)
return found;
- dm_multisnap_status_assert_locked(ps->dm);
+ dm_multisnap_status_assert_locked(ps->s);
new = kmalloc(sizeof(struct snapshot_range), GFP_KERNEL);
if (!new) {
- DM_MULTISNAP_SET_ERROR(ps->dm, -ENOMEM,
+ DM_MULTISNAP_SET_ERROR(ps->s, -ENOMEM,
("%s: can't allocate memory for snapshot descriptor",
__func__));
return NULL;
@@ -115,9 +115,9 @@ static int rb_insert_snapshot(struct dm_exception_store *ps,
mikulas_snapid_t from, mikulas_snapid_t to)
{
int r;
- dm_multisnap_status_lock(ps->dm);
+ dm_multisnap_status_lock(ps->s);
r = rb_insert_snapshot_unlocked(ps, from, to);
- dm_multisnap_status_unlock(ps->dm);
+ dm_multisnap_status_unlock(ps->s);
return r;
}
@@ -131,22 +131,22 @@ static int rb_extend_range(struct dm_exception_store *ps,
struct snapshot_range *rn;
rn = rb_find_insert_snapshot(ps, from, from, 0);
if (!rn) {
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: snapshot %llx not found",
__func__, (unsigned long long)from));
return -1;
}
if (rn->to != from) {
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: bad attempt to extend range: "
"%llx >= %llx", __func__,
(unsigned long long)rn->to,
(unsigned long long)from));
return -1;
}
- dm_multisnap_status_lock(ps->dm);
+ dm_multisnap_status_lock(ps->s);
rn->to = to;
- dm_multisnap_status_unlock(ps->dm);
+ dm_multisnap_status_unlock(ps->s);
return 0;
}
@@ -162,7 +162,7 @@ static int rb_delete_range(struct dm_exception_store *ps,
struct snapshot_range *sr = rb_find_snapshot(ps, from, from);
if (!sr || sr->to < to) {
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: deleting non-existing snapid "
"%llx-%llx", __func__,
(unsigned long long)from,
@@ -170,14 +170,14 @@ static int rb_delete_range(struct dm_exception_store *ps,
return -1;
}
- dm_multisnap_status_lock(ps->dm);
+ dm_multisnap_status_lock(ps->s);
if (sr->from < from) {
mikulas_snapid_t orig_to = sr->to;
sr->to = from - 1;
if (orig_to > to) {
if (rb_insert_snapshot_unlocked(ps, to + 1, orig_to)) {
sr->to = orig_to;
- dm_multisnap_status_unlock(ps->dm);
+ dm_multisnap_status_unlock(ps->s);
return -1;
}
}
@@ -189,7 +189,7 @@ static int rb_delete_range(struct dm_exception_store *ps,
kfree(sr);
}
}
- dm_multisnap_status_unlock(ps->dm);
+ dm_multisnap_status_unlock(ps->s);
return 0;
}
@@ -298,7 +298,7 @@ find_next:
if (r) {
if (unlikely(snap_key.snap_to > DM_SNAPID_T_MAX)) {
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: invalid snapshot id", __func__));
return;
}
@@ -355,13 +355,13 @@ static int dm_multisnap_create_snapid_range(struct dm_exception_store *ps,
int r;
struct bt_key snap_key;
- if (from && dm_multisnap_snapshot_exists(ps->dm, from - 1)) {
+ if (from && dm_multisnap_snapshot_exists(ps->s, from - 1)) {
/* Extend existing key range */
r = rb_extend_range(ps, from - 1, to);
if (r < 0)
- return dm_multisnap_has_error(ps->dm);
+ return dm_multisnap_has_error(ps->s);
snap_key.chunk = DM_CHUNK_T_SNAP_PRESENT;
snap_key.snap_from = from - 1;
@@ -372,15 +372,15 @@ static int dm_multisnap_create_snapid_range(struct dm_exception_store *ps,
r = rb_insert_snapshot(ps, from, to);
if (r < 0)
- return dm_multisnap_has_error(ps->dm);
+ return dm_multisnap_has_error(ps->s);
snap_key.chunk = DM_CHUNK_T_SNAP_PRESENT;
snap_key.snap_from = from;
snap_key.snap_to = to;
dm_multisnap_add_to_btree(ps, &snap_key, 0);
}
- if (dm_multisnap_has_error(ps->dm))
- return dm_multisnap_has_error(ps->dm);
+ if (dm_multisnap_has_error(ps->s))
+ return dm_multisnap_has_error(ps->s);
dm_multisnap_transition_mark(ps);
@@ -399,7 +399,7 @@ static int dm_multisnap_delete_snapid_range(struct dm_exception_store *ps,
r = rb_delete_range(ps, from, to);
if (r < 0)
- return dm_multisnap_has_error(ps->dm);
+ return dm_multisnap_has_error(ps->s);
snap_key.chunk = DM_CHUNK_T_SNAP_PRESENT;
snap_key.snap_from = from;
@@ -408,13 +408,13 @@ static int dm_multisnap_delete_snapid_range(struct dm_exception_store *ps,
r = dm_multisnap_find_in_btree(ps, &snap_key, &ignore);
if (r <= 0) {
if (!r)
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: snapshot id %llx not found in b-tree",
__func__, (unsigned long long)from));
- return dm_multisnap_has_error(ps->dm);
+ return dm_multisnap_has_error(ps->s);
}
if (snap_key.snap_to < to) {
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: snapshot id %llx-%llx not found in b-tree",
__func__, (unsigned long long)from,
(unsigned long long)to));
@@ -427,8 +427,8 @@ static int dm_multisnap_delete_snapid_range(struct dm_exception_store *ps,
dm_multisnap_transition_mark(ps);
- if (dm_multisnap_has_error(ps->dm))
- return dm_multisnap_has_error(ps->dm);
+ if (dm_multisnap_has_error(ps->s))
+ return dm_multisnap_has_error(ps->s);
if (snap_key.snap_to > to) {
snap_key.snap_from = to + 1;
@@ -458,7 +458,7 @@ static int dm_multisnap_create_subsnapshot(struct dm_exception_store *ps,
snapid_t master, next_sub;
master = snapid | DM_MIKULAS_SUBSNAPID_MASK;
- if (!dm_multisnap_snapshot_exists(ps->dm, master)) {
+ if (!dm_multisnap_snapshot_exists(ps->s, master)) {
DMERR("%s: master snapshot with id %llx doesn't exist",
__func__, (unsigned long long)snapid);
return -EINVAL;
@@ -507,7 +507,7 @@ int dm_multisnap_create_snapshot(struct dm_exception_store *ps, snapid_t snapid)
(unsigned long long)DM_SNAPID_T_MAX);
return -EINVAL;
}
- if (dm_multisnap_snapshot_exists(ps->dm, snapid)) {
+ if (dm_multisnap_snapshot_exists(ps->s, snapid)) {
DMERR("%s: snapshot with id %llx already exists",
__func__, (unsigned long long)snapid);
return -EINVAL;
@@ -531,8 +531,8 @@ int dm_multisnap_delete_snapshot(struct dm_exception_store *ps, snapid_t snapid)
{
int r;
- if (!dm_multisnap_snapshot_exists(ps->dm, snapid)) {
- DM_MULTISNAP_SET_ERROR(ps->dm, -EFSERROR,
+ if (!dm_multisnap_snapshot_exists(ps->s, snapid)) {
+ DM_MULTISNAP_SET_ERROR(ps->s, -EFSERROR,
("%s: snapshot id %llx not found in rb-tree",
__func__, (unsigned long long)snapid));
return -EFSERROR;
@@ -543,7 +543,7 @@ int dm_multisnap_delete_snapshot(struct dm_exception_store *ps, snapid_t snapid)
return r;
ps->flags |= DM_MULTISNAP_FLAG_PENDING_DELETE;
- dm_multisnap_queue_work(ps->dm, &ps->delete_work);
+ dm_multisnap_queue_work(ps->s, &ps->delete_work);
dm_multisnap_commit(ps);
@@ -583,7 +583,7 @@ void dm_multisnap_get_space(struct dm_exception_store *ps,
unsigned long long *chunks_allocated,
unsigned long long *chunks_metadata_allocated)
{
- dm_multisnap_status_assert_locked(ps->dm);
+ dm_multisnap_status_assert_locked(ps->s);
*chunks_total = ps->dev_size;
*chunks_allocated = ps->total_allocated;
*chunks_metadata_allocated = ps->total_allocated - ps->data_allocated;
diff --git a/drivers/md/dm-multisnap.h b/drivers/md/dm-multisnap.h
index 6c7af89..50ce4d8 100644
--- a/drivers/md/dm-multisnap.h
+++ b/drivers/md/dm-multisnap.h
@@ -49,7 +49,7 @@ struct dm_multisnap_exception_store {
const char *name;
/* < 0 - error */
- int (*init_exception_store)(struct dm_multisnap *dm, struct dm_exception_store **psp,
+ int (*init_exception_store)(struct dm_multisnap *s, struct dm_exception_store **psp,
unsigned argc, char **argv, char **error);
void (*exit_exception_store)(struct dm_exception_store *ps);
--
1.6.6.1
More information about the dm-devel
mailing list