Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 373497
b: refs/heads/master
c: 8b0241f
h: refs/heads/master
i:
  373495: 454155b
v: v3
  • Loading branch information
Alex Elder authored and Sage Weil committed May 2, 2013
1 parent e7bc8ac commit f207303
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 21 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 5655c4d940ba8dd32250ab1e4ba3db785943a28e
refs/heads/master: 8b0241f85ab11c87075f9de0191acd8b546c6f6a
35 changes: 15 additions & 20 deletions trunk/drivers/block/rbd.c
Original file line number Diff line number Diff line change
Expand Up @@ -830,44 +830,39 @@ static const char *rbd_snap_name(struct rbd_device *rbd_dev, u64 snap_id)
return NULL;
}

static int snap_by_name(struct rbd_device *rbd_dev, const char *snap_name)
static struct rbd_snap *snap_by_name(struct rbd_device *rbd_dev,
const char *snap_name)
{

struct rbd_snap *snap;

list_for_each_entry(snap, &rbd_dev->snaps, node) {
if (!strcmp(snap_name, snap->name)) {
rbd_dev->spec->snap_id = snap->id;
rbd_dev->mapping.size = snap->size;
rbd_dev->mapping.features = snap->features;

return 0;
}
}
list_for_each_entry(snap, &rbd_dev->snaps, node)
if (!strcmp(snap_name, snap->name))
return snap;

return -ENOENT;
return NULL;
}

static int rbd_dev_set_mapping(struct rbd_device *rbd_dev)
{
int ret;

if (!memcmp(rbd_dev->spec->snap_name, RBD_SNAP_HEAD_NAME,
sizeof (RBD_SNAP_HEAD_NAME))) {
rbd_dev->spec->snap_id = CEPH_NOSNAP;
rbd_dev->mapping.size = rbd_dev->header.image_size;
rbd_dev->mapping.features = rbd_dev->header.features;
ret = 0;
} else {
ret = snap_by_name(rbd_dev, rbd_dev->spec->snap_name);
if (ret < 0)
goto done;
struct rbd_snap *snap;

snap = snap_by_name(rbd_dev, rbd_dev->spec->snap_name);
if (!snap)
return -ENOENT;
rbd_dev->spec->snap_id = snap->id;
rbd_dev->mapping.size = snap->size;
rbd_dev->mapping.features = snap->features;
rbd_dev->mapping.read_only = true;
}
set_bit(RBD_DEV_FLAG_EXISTS, &rbd_dev->flags);

done:
return ret;
return 0;
}

static void rbd_header_free(struct rbd_image_header *header)
Expand Down

0 comments on commit f207303

Please sign in to comment.