[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] backup notifier fail policy
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
[Qemu-devel] backup notifier fail policy |
Date: |
Fri, 30 Sep 2016 20:11:00 +0300 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 |
Hi all!
Please, can somebody explain me, why we fail guest request in case of io
error in write notifier? I think guest consistency is more important
than success of unfinished backup. Or, what am I missing?
I'm saying about this code:
static int coroutine_fn backup_before_write_notify(
NotifierWithReturn *notifier,
void *opaque)
{
BackupBlockJob *job = container_of(notifier, BackupBlockJob,
before_write);
BdrvTrackedRequest *req = opaque;
int64_t sector_num = req->offset >> BDRV_SECTOR_BITS;
int nb_sectors = req->bytes >> BDRV_SECTOR_BITS;
assert(req->bs == blk_bs(job->common.blk));
assert((req->offset & (BDRV_SECTOR_SIZE - 1)) == 0);
assert((req->bytes & (BDRV_SECTOR_SIZE - 1)) == 0);
return backup_do_cow(job, sector_num, nb_sectors, NULL, true);
}
So, what about something like
ret = backup_do_cow(job, ...
if (ret < 0 && job->notif_ret == 0) {
job->notif_ret = ret;
}
return 0;
and fail block job if notif_ret < 0 in other places of backup code?
--
Best regards,
Vladimir
- [Qemu-devel] backup notifier fail policy,
Vladimir Sementsov-Ogievskiy <=