[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PATCH v8 11/36] block: Add blk_lock_image
From: |
Fam Zheng |
Subject: |
[Qemu-block] [PATCH v8 11/36] block: Add blk_lock_image |
Date: |
Fri, 30 Sep 2016 20:09:41 +0800 |
Signed-off-by: Fam Zheng <address@hidden>
---
block/block-backend.c | 18 ++++++++++++++++++
include/sysemu/block-backend.h | 2 ++
2 files changed, 20 insertions(+)
diff --git a/block/block-backend.c b/block/block-backend.c
index 0bd19ab..dc1ad36 100644
--- a/block/block-backend.c
+++ b/block/block-backend.c
@@ -61,6 +61,7 @@ struct BlockBackend {
bool allow_write_beyond_eof;
NotifierList remove_bs_notifiers, insert_bs_notifiers;
+ ImageLockMode lock_mode;
};
typedef struct BlockBackendAIOCB {
@@ -1720,3 +1721,20 @@ static void blk_root_drained_end(BdrvChild *child)
assert(blk->public.io_limits_disabled);
--blk->public.io_limits_disabled;
}
+
+void blk_lock_image(BlockBackend *blk, ImageLockMode mode, Error **errp)
+{
+ int r;
+ BlockDriverState *bs = blk_bs(blk);
+
+ if (!bs) {
+ blk->lock_mode = mode;
+ return;
+ }
+ r = bdrv_set_lock_mode(bs, mode);
+ if (r) {
+ error_setg(errp, "Failed to lock image");
+ } else {
+ blk->lock_mode = mode;
+ }
+}
diff --git a/include/sysemu/block-backend.h b/include/sysemu/block-backend.h
index 3b29317..78f9da5 100644
--- a/include/sysemu/block-backend.h
+++ b/include/sysemu/block-backend.h
@@ -224,4 +224,6 @@ void blk_io_limits_disable(BlockBackend *blk);
void blk_io_limits_enable(BlockBackend *blk, const char *group);
void blk_io_limits_update_group(BlockBackend *blk, const char *group);
+void blk_lock_image(BlockBackend *blk, ImageLockMode mode, Error **errp);
+
#endif
--
2.7.4
- [Qemu-block] [PATCH v8 01/36] block: Add flag bits for image locking, (continued)
- [Qemu-block] [PATCH v8 01/36] block: Add flag bits for image locking, Fam Zheng, 2016/09/30
- [Qemu-block] [PATCH v8 02/36] qapi: Add ImageLockMode, Fam Zheng, 2016/09/30
- [Qemu-block] [PATCH v8 03/36] block: Introduce image file locking, Fam Zheng, 2016/09/30
- [Qemu-block] [PATCH v8 04/36] osdep: Add qemu_lock_fd and qemu_unlock_fd, Fam Zheng, 2016/09/30
- [Qemu-block] [PATCH v8 05/36] raw-posix: Add image locking support, Fam Zheng, 2016/09/30
- [Qemu-block] [PATCH v8 06/36] qemu-io: Add "-L" option for BDRV_O_NO_LOCK, Fam Zheng, 2016/09/30
- [Qemu-block] [PATCH v8 07/36] qemu-img: Add "-L" option to sub commands, Fam Zheng, 2016/09/30
- [Qemu-block] [PATCH v8 08/36] qemu-img: Update documentation of "-L" option, Fam Zheng, 2016/09/30
- [Qemu-block] [PATCH v8 09/36] qemu-nbd: Add "--no-lock/-L" option, Fam Zheng, 2016/09/30
- [Qemu-block] [PATCH v8 10/36] block: Don't lock drive-backup target image in none mode, Fam Zheng, 2016/09/30
- [Qemu-block] [PATCH v8 11/36] block: Add blk_lock_image,
Fam Zheng <=
- [Qemu-block] [PATCH v8 12/36] virtio-blk: Apply lock-mode when realize, Fam Zheng, 2016/09/30
- [Qemu-block] [PATCH v8 13/36] scsi-disk: Apply lock-mode when realize, Fam Zheng, 2016/09/30
- [Qemu-block] [PATCH v8 14/36] scsi-generic: Apply lock-mode when realize, Fam Zheng, 2016/09/30
- [Qemu-block] [PATCH v8 15/36] qdev: Add "lock-mode" to block device options, Fam Zheng, 2016/09/30
- [Qemu-block] [PATCH v8 16/36] ide: Apply lock-mode when initialize, Fam Zheng, 2016/09/30
- [Qemu-block] [PATCH v8 17/36] nvme: Apply lock-mode when initialize, Fam Zheng, 2016/09/30
- [Qemu-block] [PATCH v8 18/36] usb-storage: Apply lock-mode when realize, Fam Zheng, 2016/09/30
- [Qemu-block] [PATCH v8 19/36] pflash: Add "lock-mode" property, Fam Zheng, 2016/09/30
- [Qemu-block] [PATCH v8 20/36] qemu-iotests: 046: Move version detection out from verify_io, Fam Zheng, 2016/09/30
- [Qemu-block] [PATCH v8 21/36] qemu-iotests: 091: Prepare for image lock, Fam Zheng, 2016/09/30