[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 5/5] drive_open: Add invalidate option for block
From: |
Blue Swirl |
Subject: |
Re: [Qemu-devel] [PATCH 5/5] drive_open: Add invalidate option for block devices |
Date: |
Tue, 4 Jan 2011 19:06:54 +0000 |
On Tue, Jan 4, 2011 at 2:33 PM, Juan Quintela <address@hidden> wrote:
> Linux allows to invalidate block devices. This is needed for the incoming
> migration part.
>
> Signed-off-by: Juan Quintela <address@hidden>
> ---
> block.h | 2 ++
> block/raw-posix.c | 24 ++++++++++++++++++++++++
> blockdev.c | 9 +++++----
> 3 files changed, 31 insertions(+), 4 deletions(-)
>
> diff --git a/block.h b/block.h
> index f923add..5ac96a5 100644
> --- a/block.h
> +++ b/block.h
> @@ -34,6 +34,8 @@ typedef struct QEMUSnapshotInfo {
> #define BDRV_O_NATIVE_AIO 0x0080 /* use native AIO instead of the thread
> pool */
> #define BDRV_O_NO_BACKING 0x0100 /* don't open the backing file */
> #define BDRV_O_NO_FLUSH 0x0200 /* disable flushing on this disk */
> +#define BDRV_O_INVALIDATE 0x0400 /* invalidate buffer cache for this device.
> + re-read things from server */
>
> #define BDRV_O_CACHE_MASK (BDRV_O_NOCACHE | BDRV_O_CACHE_WB |
> BDRV_O_NO_FLUSH)
>
> diff --git a/block/raw-posix.c b/block/raw-posix.c
> index 6b72470..9439cf1 100644
> --- a/block/raw-posix.c
> +++ b/block/raw-posix.c
> @@ -51,6 +51,7 @@
> #include <sys/param.h>
> #include <linux/cdrom.h>
> #include <linux/fd.h>
> +#include <linux/fs.h>
> #endif
> #if defined (__FreeBSD__) || defined(__FreeBSD_kernel__)
> #include <signal.h>
> @@ -168,6 +169,29 @@ static int raw_open_common(BlockDriverState *bs, const
> char *filename,
> s->fd = fd;
> s->aligned_buf = NULL;
>
> +#ifdef __linux__
> + if ((bdrv_flags & BDRV_O_INVALIDATE)) {
> + struct stat buf;
> + int res;
> +
> + res = fstat(fd, &buf);
> +
> + if (res < 0) {
> + return -errno;
> + }
> +
> + if (S_ISBLK(buf.st_mode)) {
> + printf("we are in a block device: %s\n", filename);
Leftover debugging?
- [Qemu-devel] [PATCH 0/5] Fix migration with NFS & iscsi/Fiber channel, Juan Quintela, 2011/01/04
- [Qemu-devel] [PATCH 2/5] blockdev: don't leak id on removal, Juan Quintela, 2011/01/04
- [Qemu-devel] [PATCH 3/5] blockdev: release resources in the error case, Juan Quintela, 2011/01/04
- [Qemu-devel] [PATCH 4/5] Reopen files after migration, Juan Quintela, 2011/01/04
- [Qemu-devel] [PATCH 5/5] drive_open: Add invalidate option for block devices, Juan Quintela, 2011/01/04
- [Qemu-devel] [PATCH 1/5] migration: exit with error code, Juan Quintela, 2011/01/04
- [Qemu-devel] Re: [PATCH 0/5] Fix migration with NFS & iscsi/Fiber channel, Juan Quintela, 2011/01/10