static void
local_cache_complete_read(local_cache_t *cache, local_cache_request_t *lreq)
{
- td_vbd_t *vbd = lreq->treq.image->private;
+ td_vbd_request_t *vreq;
+ td_vbd_t *vbd;
td_request_t clone;
+ vreq = lreq->treq.private;
+ vbd = vreq->vbd;
+
if (!lreq->err) {
size_t sz = lreq->treq.secs << SECTOR_SHIFT;
memcpy(lreq->treq.buf, lreq->buf, sz);
#define ERR(_err, _f, _a...) tlog_error(_err, _f, ##_a)
td_image_t *
-tapdisk_image_allocate(const char *file, int type, td_flag_t flags, void *private)
+tapdisk_image_allocate(const char *file, int type, td_flag_t flags)
{
int err;
td_image_t *image;
image->type = type;
image->flags = flags;
- image->private = private;
INIT_LIST_HEAD(&image->next);
return image;
td_driver_t *driver;
td_disk_info_t info;
- void *private;
-
struct list_head next;
/*
} stats;
};
-td_image_t *tapdisk_image_allocate(const char *, int, td_flag_t, void *);
+td_image_t *tapdisk_image_allocate(const char *, int, td_flag_t);
void tapdisk_image_free(td_image_t *);
int tapdisk_image_check_td_request(td_image_t *, td_request_t);
cache = tapdisk_image_allocate(target->name,
DISK_TYPE_BLOCK_CACHE,
- target->flags,
- target->private);
+ target->flags);
if (!cache)
return -ENOMEM;
}
cache = tapdisk_image_allocate(parent->name,
- DISK_TYPE_LOCAL_CACHE,
- parent->flags,
- parent->private);
+ DISK_TYPE_LOCAL_CACHE,
+ parent->flags);
if (!cache)
return -ENOMEM;
leaf = tapdisk_vbd_first_image(vbd);
second = tapdisk_image_allocate(vbd->secondary_name,
vbd->secondary_type,
- leaf->flags,
- leaf->private);
+ leaf->flags);
if (!second)
return -ENOMEM;
}
flags = vbd->flags | TD_OPEN_RDONLY | TD_OPEN_SHAREABLE;
- image = tapdisk_image_allocate(path, DISK_TYPE_VINDEX, flags, vbd);
+ image = tapdisk_image_allocate(path, DISK_TYPE_VINDEX, flags);
if (!image) {
err = -ENOMEM;
goto fail;
log = tapdisk_image_allocate(parent->name,
DISK_TYPE_LOG,
- parent->flags,
- vbd);
+ parent->flags);
if (!log)
return -ENOMEM;
for (;;) {
err = -ENOMEM;
- image = tapdisk_image_allocate(file, type, flags, vbd);
+ image = tapdisk_image_allocate(file, type, flags);
if (file != vbd->name) {
free(file);
td_vbd_request_t *vreq;
image = treq.image;
- vbd = (td_vbd_t *)image->private;
- vreq = (td_vbd_request_t *)treq.private;
+ vreq = treq.private;
+ vbd = vreq->vbd;
tapdisk_vbd_mark_progress(vbd);
td_vbd_request_t *vreq;
image = treq.image;
- vbd = (td_vbd_t *)image->private;
- vreq = (td_vbd_request_t *)treq.private;
+ vreq = treq.private;
+ vbd = vreq->vbd;
tapdisk_vbd_mark_progress(vbd);