[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Re: [PATCH 5/5] drive_open: Add invalidate option for block
From: |
Juan Quintela |
Subject: |
[Qemu-devel] Re: [PATCH 5/5] drive_open: Add invalidate option for block devices |
Date: |
Tue, 04 Jan 2011 20:23:11 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) |
Blue Swirl <address@hidden> wrote:
> 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?
ouch, yes.
thanks for the spotting.
Later, Juan.
- [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