* [Qemu-devel] [PULL 00/11] Block patches @ 2010-05-07 15:13 Kevin Wolf 2010-05-07 15:13 ` [Qemu-devel] [PATCH 01/11] block: Remove semicolon in BDRV_SECTOR_MASK macro Kevin Wolf ` (10 more replies) 0 siblings, 11 replies; 40+ messages in thread From: Kevin Wolf @ 2010-05-07 15:13 UTC (permalink / raw) To: aliguori; +Cc: kwolf, qemu-devel The following changes since commit 2065061ede22d401aae2ce995c3af54db9d28639: Igor V. Kovalenko (1): sparc64: handle asi referencing nucleus and secondary MMU contexts are available in the git repository at: git://repo.or.cz/qemu/kevin.git for-anthony Christoph Hellwig (4): cloop: use pread cloop: use qemu block API bochs: use pread bochs: use qemu block API Kevin Wolf (4): ide: Fix ide_dma_cancel block: Avoid unchecked casts for AIOCBs block: Fix protocol detection for Windows devices block: Fix bdrv_commit Ryota Ozaki (1): qemu-nbd: Improve error reporting Stefan Hajnoczi (1): block: Remove semicolon in BDRV_SECTOR_MASK macro Stefan Weil (1): block/vdi: Allow disk images of size 0 block.c | 19 +++++++----- block.h | 2 +- block/blkdebug.c | 4 +- block/bochs.c | 81 +++++++++++++++-------------------------------------- block/cloop.c | 48 ++++++++++++++++---------------- block/qcow.c | 2 +- block/qcow2.c | 2 +- block/vdi.c | 11 +++++-- hw/ide/core.c | 8 ++-- qemu-nbd.c | 34 ++++++++++++++++------ 10 files changed, 99 insertions(+), 112 deletions(-) ^ permalink raw reply [flat|nested] 40+ messages in thread
* [Qemu-devel] [PATCH 01/11] block: Remove semicolon in BDRV_SECTOR_MASK macro 2010-05-07 15:13 [Qemu-devel] [PULL 00/11] Block patches Kevin Wolf @ 2010-05-07 15:13 ` Kevin Wolf 2010-05-07 15:13 ` [Qemu-devel] [PATCH 02/11] qemu-nbd: Improve error reporting Kevin Wolf ` (9 subsequent siblings) 10 siblings, 0 replies; 40+ messages in thread From: Kevin Wolf @ 2010-05-07 15:13 UTC (permalink / raw) To: aliguori; +Cc: kwolf, qemu-devel From: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com> --- block.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/block.h b/block.h index f87d24e..278259c 100644 --- a/block.h +++ b/block.h @@ -38,7 +38,7 @@ typedef struct QEMUSnapshotInfo { #define BDRV_SECTOR_BITS 9 #define BDRV_SECTOR_SIZE (1 << BDRV_SECTOR_BITS) -#define BDRV_SECTOR_MASK ~(BDRV_SECTOR_SIZE - 1); +#define BDRV_SECTOR_MASK ~(BDRV_SECTOR_SIZE - 1) typedef enum { BDRV_ACTION_REPORT, BDRV_ACTION_IGNORE, BDRV_ACTION_STOP -- 1.6.6.1 ^ permalink raw reply related [flat|nested] 40+ messages in thread
* [Qemu-devel] [PATCH 02/11] qemu-nbd: Improve error reporting 2010-05-07 15:13 [Qemu-devel] [PULL 00/11] Block patches Kevin Wolf 2010-05-07 15:13 ` [Qemu-devel] [PATCH 01/11] block: Remove semicolon in BDRV_SECTOR_MASK macro Kevin Wolf @ 2010-05-07 15:13 ` Kevin Wolf 2010-05-07 15:13 ` [Qemu-devel] [PATCH 03/11] cloop: use pread Kevin Wolf ` (8 subsequent siblings) 10 siblings, 0 replies; 40+ messages in thread From: Kevin Wolf @ 2010-05-07 15:13 UTC (permalink / raw) To: aliguori; +Cc: kwolf, qemu-devel From: Ryota Ozaki <ozaki.ryota@gmail.com> - use err(3) instead of errx(3) if errno is available to report why failed - let fail prior to daemon(3) if opening a nbd file is likely to fail after daemonizing to avoid silent failure exit - add missing 'ret = 1' when unix_socket_outgoing failed Signed-off-by: Ryota Ozaki <ozaki.ryota@gmail.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com> --- qemu-nbd.c | 34 ++++++++++++++++++++++++---------- 1 files changed, 24 insertions(+), 10 deletions(-) diff --git a/qemu-nbd.c b/qemu-nbd.c index 25aa913..4e607cf 100644 --- a/qemu-nbd.c +++ b/qemu-nbd.c @@ -112,9 +112,12 @@ static int find_partition(BlockDriverState *bs, int partition, uint8_t data[512]; int i; int ext_partnum = 4; + int ret; - if (bdrv_read(bs, 0, data, 1)) - errx(EXIT_FAILURE, "error while reading"); + if ((ret = bdrv_read(bs, 0, data, 1)) < 0) { + errno = -ret; + err(EXIT_FAILURE, "error while reading"); + } if (data[510] != 0x55 || data[511] != 0xaa) { errno = -EINVAL; @@ -132,8 +135,10 @@ static int find_partition(BlockDriverState *bs, int partition, uint8_t data1[512]; int j; - if (bdrv_read(bs, mbr[i].start_sector_abs, data1, 1)) - errx(EXIT_FAILURE, "error while reading"); + if ((ret = bdrv_read(bs, mbr[i].start_sector_abs, data1, 1)) < 0) { + errno = -ret; + err(EXIT_FAILURE, "error while reading"); + } for (j = 0; j < 4; j++) { read_partition(&data1[446 + 16 * j], &ext[j]); @@ -316,7 +321,7 @@ int main(int argc, char **argv) if (disconnect) { fd = open(argv[optind], O_RDWR); if (fd == -1) - errx(EXIT_FAILURE, "Cannot open %s", argv[optind]); + err(EXIT_FAILURE, "Cannot open %s", argv[optind]); nbd_disconnect(fd); @@ -333,23 +338,30 @@ int main(int argc, char **argv) if (bs == NULL) return 1; - if (bdrv_open(bs, argv[optind], flags, NULL) < 0) - return 1; + if ((ret = bdrv_open(bs, argv[optind], flags, NULL)) < 0) { + errno = -ret; + err(EXIT_FAILURE, "Failed to bdrv_open '%s'", argv[optind]); + } fd_size = bs->total_sectors * 512; if (partition != -1 && find_partition(bs, partition, &dev_offset, &fd_size)) - errx(EXIT_FAILURE, "Could not find partition %d", partition); + err(EXIT_FAILURE, "Could not find partition %d", partition); if (device) { pid_t pid; int sock; + /* want to fail before daemonizing */ + if (access(device, R_OK|W_OK) == -1) { + err(EXIT_FAILURE, "Could not access '%s'", device); + } + if (!verbose) { /* detach client and server */ if (daemon(0, 0) == -1) { - errx(EXIT_FAILURE, "Failed to daemonize"); + err(EXIT_FAILURE, "Failed to daemonize"); } } @@ -372,8 +384,10 @@ int main(int argc, char **argv) do { sock = unix_socket_outgoing(socket); if (sock == -1) { - if (errno != ENOENT && errno != ECONNREFUSED) + if (errno != ENOENT && errno != ECONNREFUSED) { + ret = 1; goto out; + } sleep(1); /* wait children */ } } while (sock == -1); -- 1.6.6.1 ^ permalink raw reply related [flat|nested] 40+ messages in thread
* [Qemu-devel] [PATCH 03/11] cloop: use pread 2010-05-07 15:13 [Qemu-devel] [PULL 00/11] Block patches Kevin Wolf 2010-05-07 15:13 ` [Qemu-devel] [PATCH 01/11] block: Remove semicolon in BDRV_SECTOR_MASK macro Kevin Wolf 2010-05-07 15:13 ` [Qemu-devel] [PATCH 02/11] qemu-nbd: Improve error reporting Kevin Wolf @ 2010-05-07 15:13 ` Kevin Wolf 2010-05-07 15:14 ` [Qemu-devel] [PATCH 04/11] cloop: use qemu block API Kevin Wolf ` (7 subsequent siblings) 10 siblings, 0 replies; 40+ messages in thread From: Kevin Wolf @ 2010-05-07 15:13 UTC (permalink / raw) To: aliguori; +Cc: kwolf, qemu-devel From: Christoph Hellwig <hch@lst.de> Use pread instead of lseek + read in preparation of using the qemu block API. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Kevin Wolf <kwolf@redhat.com> --- block/cloop.c | 32 +++++++++++++++++--------------- 1 files changed, 17 insertions(+), 15 deletions(-) diff --git a/block/cloop.c b/block/cloop.c index e4f995b..9fe2a42 100644 --- a/block/cloop.c +++ b/block/cloop.c @@ -62,23 +62,22 @@ static int cloop_open(BlockDriverState *bs, const char *filename, int flags) bs->read_only = 1; /* read header */ - if(lseek(s->fd,128,SEEK_SET)<0) { -cloop_close: - close(s->fd); - return -1; + if (pread(s->fd, &s->block_size, 4, 128) < 4) { + goto cloop_close; } - if(read(s->fd,&s->block_size,4)<4) - goto cloop_close; - s->block_size=be32_to_cpu(s->block_size); - if(read(s->fd,&s->n_blocks,4)<4) - goto cloop_close; - s->n_blocks=be32_to_cpu(s->n_blocks); + s->block_size = be32_to_cpu(s->block_size); + + if (pread(s->fd, &s->n_blocks, 4, 128 + 4) < 4) { + goto cloop_close; + } + s->n_blocks = be32_to_cpu(s->n_blocks); /* read offsets */ - offsets_size=s->n_blocks*sizeof(uint64_t); - s->offsets=(uint64_t*)qemu_malloc(offsets_size); - if(read(s->fd,s->offsets,offsets_size)<offsets_size) + offsets_size = s->n_blocks * sizeof(uint64_t); + s->offsets = qemu_malloc(offsets_size); + if (pread(s->fd, s->offsets, offsets_size, 128 + 4 + 4) < offsets_size) { goto cloop_close; + } for(i=0;i<s->n_blocks;i++) { s->offsets[i]=be64_to_cpu(s->offsets[i]); if(i>0) { @@ -98,6 +97,10 @@ cloop_close: s->sectors_per_block = s->block_size/512; bs->total_sectors = s->n_blocks*s->sectors_per_block; return 0; + +cloop_close: + close(s->fd); + return -1; } static inline int cloop_read_block(BDRVCloopState *s,int block_num) @@ -106,8 +109,7 @@ static inline int cloop_read_block(BDRVCloopState *s,int block_num) int ret; uint32_t bytes = s->offsets[block_num+1]-s->offsets[block_num]; - lseek(s->fd, s->offsets[block_num], SEEK_SET); - ret = read(s->fd, s->compressed_block, bytes); + ret = pread(s->fd, s->compressed_block, bytes, s->offsets[block_num]); if (ret != bytes) return -1; -- 1.6.6.1 ^ permalink raw reply related [flat|nested] 40+ messages in thread
* [Qemu-devel] [PATCH 04/11] cloop: use qemu block API 2010-05-07 15:13 [Qemu-devel] [PULL 00/11] Block patches Kevin Wolf ` (2 preceding siblings ...) 2010-05-07 15:13 ` [Qemu-devel] [PATCH 03/11] cloop: use pread Kevin Wolf @ 2010-05-07 15:14 ` Kevin Wolf 2010-05-07 15:14 ` [Qemu-devel] [PATCH 05/11] ide: Fix ide_dma_cancel Kevin Wolf ` (6 subsequent siblings) 10 siblings, 0 replies; 40+ messages in thread From: Kevin Wolf @ 2010-05-07 15:14 UTC (permalink / raw) To: aliguori; +Cc: kwolf, qemu-devel From: Christoph Hellwig <hch@lst.de> Use bdrv_pwrite to access the backing device instead of pread, and convert the driver to implementing the bdrv_open method which gives it an already opened BlockDriverState for the underlying device. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Kevin Wolf <kwolf@redhat.com> --- block/cloop.c | 26 ++++++++++++-------------- 1 files changed, 12 insertions(+), 14 deletions(-) diff --git a/block/cloop.c b/block/cloop.c index 9fe2a42..fe015c4 100644 --- a/block/cloop.c +++ b/block/cloop.c @@ -27,7 +27,6 @@ #include <zlib.h> typedef struct BDRVCloopState { - int fd; uint32_t block_size; uint32_t n_blocks; uint64_t* offsets; @@ -51,23 +50,20 @@ static int cloop_probe(const uint8_t *buf, int buf_size, const char *filename) return 0; } -static int cloop_open(BlockDriverState *bs, const char *filename, int flags) +static int cloop_open(BlockDriverState *bs, int flags) { BDRVCloopState *s = bs->opaque; uint32_t offsets_size,max_compressed_block_size=1,i; - s->fd = open(filename, O_RDONLY | O_BINARY); - if (s->fd < 0) - return -errno; bs->read_only = 1; /* read header */ - if (pread(s->fd, &s->block_size, 4, 128) < 4) { + if (bdrv_pread(bs->file, 128, &s->block_size, 4) < 4) { goto cloop_close; } s->block_size = be32_to_cpu(s->block_size); - if (pread(s->fd, &s->n_blocks, 4, 128 + 4) < 4) { + if (bdrv_pread(bs->file, 128 + 4, &s->n_blocks, 4) < 4) { goto cloop_close; } s->n_blocks = be32_to_cpu(s->n_blocks); @@ -75,7 +71,8 @@ static int cloop_open(BlockDriverState *bs, const char *filename, int flags) /* read offsets */ offsets_size = s->n_blocks * sizeof(uint64_t); s->offsets = qemu_malloc(offsets_size); - if (pread(s->fd, s->offsets, offsets_size, 128 + 4 + 4) < offsets_size) { + if (bdrv_pread(bs->file, 128 + 4 + 4, s->offsets, offsets_size) < + offsets_size) { goto cloop_close; } for(i=0;i<s->n_blocks;i++) { @@ -99,17 +96,19 @@ static int cloop_open(BlockDriverState *bs, const char *filename, int flags) return 0; cloop_close: - close(s->fd); return -1; } -static inline int cloop_read_block(BDRVCloopState *s,int block_num) +static inline int cloop_read_block(BlockDriverState *bs, int block_num) { + BDRVCloopState *s = bs->opaque; + if(s->current_block != block_num) { int ret; uint32_t bytes = s->offsets[block_num+1]-s->offsets[block_num]; - ret = pread(s->fd, s->compressed_block, bytes, s->offsets[block_num]); + ret = bdrv_pread(bs->file, s->offsets[block_num], s->compressed_block, + bytes); if (ret != bytes) return -1; @@ -138,7 +137,7 @@ static int cloop_read(BlockDriverState *bs, int64_t sector_num, for(i=0;i<nb_sectors;i++) { uint32_t sector_offset_in_block=((sector_num+i)%s->sectors_per_block), block_num=(sector_num+i)/s->sectors_per_block; - if(cloop_read_block(s, block_num) != 0) + if(cloop_read_block(bs, block_num) != 0) return -1; memcpy(buf+i*512,s->uncompressed_block+sector_offset_in_block*512,512); } @@ -148,7 +147,6 @@ static int cloop_read(BlockDriverState *bs, int64_t sector_num, static void cloop_close(BlockDriverState *bs) { BDRVCloopState *s = bs->opaque; - close(s->fd); if(s->n_blocks>0) free(s->offsets); free(s->compressed_block); @@ -160,7 +158,7 @@ static BlockDriver bdrv_cloop = { .format_name = "cloop", .instance_size = sizeof(BDRVCloopState), .bdrv_probe = cloop_probe, - .bdrv_file_open = cloop_open, + .bdrv_open = cloop_open, .bdrv_read = cloop_read, .bdrv_close = cloop_close, }; -- 1.6.6.1 ^ permalink raw reply related [flat|nested] 40+ messages in thread
* [Qemu-devel] [PATCH 05/11] ide: Fix ide_dma_cancel 2010-05-07 15:13 [Qemu-devel] [PULL 00/11] Block patches Kevin Wolf ` (3 preceding siblings ...) 2010-05-07 15:14 ` [Qemu-devel] [PATCH 04/11] cloop: use qemu block API Kevin Wolf @ 2010-05-07 15:14 ` Kevin Wolf 2010-05-07 15:14 ` [Qemu-devel] [PATCH 06/11] bochs: use pread Kevin Wolf ` (5 subsequent siblings) 10 siblings, 0 replies; 40+ messages in thread From: Kevin Wolf @ 2010-05-07 15:14 UTC (permalink / raw) To: aliguori; +Cc: kwolf, qemu-devel When cancelling a request, bdrv_aio_cancel may decide that it waits for completion of a request rather than for cancellation. IDE therefore can't abandon its DMA status before calling bdrv_aio_cancel; otherwise the callback of a completed request would use invalid data. Signed-off-by: Kevin Wolf <kwolf@redhat.com> --- hw/ide/core.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) diff --git a/hw/ide/core.c b/hw/ide/core.c index 0757528..3cd55e3 100644 --- a/hw/ide/core.c +++ b/hw/ide/core.c @@ -2838,10 +2838,6 @@ static void ide_dma_restart(IDEState *s, int is_read) void ide_dma_cancel(BMDMAState *bm) { if (bm->status & BM_STATUS_DMAING) { - bm->status &= ~BM_STATUS_DMAING; - /* cancel DMA request */ - bm->unit = -1; - bm->dma_cb = NULL; if (bm->aiocb) { #ifdef DEBUG_AIO printf("aio_cancel\n"); @@ -2849,6 +2845,10 @@ void ide_dma_cancel(BMDMAState *bm) bdrv_aio_cancel(bm->aiocb); bm->aiocb = NULL; } + bm->status &= ~BM_STATUS_DMAING; + /* cancel DMA request */ + bm->unit = -1; + bm->dma_cb = NULL; } } -- 1.6.6.1 ^ permalink raw reply related [flat|nested] 40+ messages in thread
* [Qemu-devel] [PATCH 06/11] bochs: use pread 2010-05-07 15:13 [Qemu-devel] [PULL 00/11] Block patches Kevin Wolf ` (4 preceding siblings ...) 2010-05-07 15:14 ` [Qemu-devel] [PATCH 05/11] ide: Fix ide_dma_cancel Kevin Wolf @ 2010-05-07 15:14 ` Kevin Wolf 2010-05-07 15:14 ` [Qemu-devel] [PATCH 07/11] bochs: use qemu block API Kevin Wolf ` (4 subsequent siblings) 10 siblings, 0 replies; 40+ messages in thread From: Kevin Wolf @ 2010-05-07 15:14 UTC (permalink / raw) To: aliguori; +Cc: kwolf, qemu-devel From: Christoph Hellwig <hch@lst.de> Use pread instead of lseek + read in preparation of using the qemu block API. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Kevin Wolf <kwolf@redhat.com> --- block/bochs.c | 63 ++++++++++++++++++-------------------------------------- 1 files changed, 20 insertions(+), 43 deletions(-) diff --git a/block/bochs.c b/block/bochs.c index e952670..b54f54d 100644 --- a/block/bochs.c +++ b/block/bochs.c @@ -125,7 +125,7 @@ static int bochs_open(BlockDriverState *bs, const char *filename, int flags) s->fd = fd; - if (read(fd, &bochs, sizeof(bochs)) != sizeof(bochs)) { + if (pread(fd, &bochs, sizeof(bochs), 0) != sizeof(bochs)) { goto fail; } @@ -144,14 +144,10 @@ static int bochs_open(BlockDriverState *bs, const char *filename, int flags) bs->total_sectors = le64_to_cpu(bochs.extra.redolog.disk) / 512; } - if (lseek(s->fd, le32_to_cpu(bochs.header), SEEK_SET) == (off_t)-1) { - goto fail; - } - s->catalog_size = le32_to_cpu(bochs.extra.redolog.catalog); s->catalog_bitmap = qemu_malloc(s->catalog_size * 4); - if (read(s->fd, s->catalog_bitmap, s->catalog_size * 4) != - s->catalog_size * 4) + if (pread(s->fd, s->catalog_bitmap, s->catalog_size * 4, + le32_to_cpu(bochs.header)) != s->catalog_size * 4) goto fail; for (i = 0; i < s->catalog_size; i++) le32_to_cpus(&s->catalog_bitmap[i]); @@ -169,54 +165,35 @@ static int bochs_open(BlockDriverState *bs, const char *filename, int flags) return -1; } -static inline int seek_to_sector(BlockDriverState *bs, int64_t sector_num) +static int64_t seek_to_sector(BlockDriverState *bs, int64_t sector_num) { BDRVBochsState *s = bs->opaque; int64_t offset = sector_num * 512; - int64_t extent_index, extent_offset, bitmap_offset, block_offset; + int64_t extent_index, extent_offset, bitmap_offset; char bitmap_entry; // seek to sector extent_index = offset / s->extent_size; extent_offset = (offset % s->extent_size) / 512; - if (s->catalog_bitmap[extent_index] == 0xffffffff) - { -// fprintf(stderr, "page not allocated [%x - %x:%x]\n", -// sector_num, extent_index, extent_offset); - return -1; // not allocated + if (s->catalog_bitmap[extent_index] == 0xffffffff) { + return -1; /* not allocated */ } bitmap_offset = s->data_offset + (512 * s->catalog_bitmap[extent_index] * (s->extent_blocks + s->bitmap_blocks)); - block_offset = bitmap_offset + (512 * (s->bitmap_blocks + extent_offset)); - -// fprintf(stderr, "sect: %x [ext i: %x o: %x] -> %x bitmap: %x block: %x\n", -// sector_num, extent_index, extent_offset, -// le32_to_cpu(s->catalog_bitmap[extent_index]), -// bitmap_offset, block_offset); - - // read in bitmap for current extent - if (lseek(s->fd, bitmap_offset + (extent_offset / 8), SEEK_SET) == - (off_t)-1) { - return -1; - } - if (read(s->fd, &bitmap_entry, 1) != 1) + /* read in bitmap for current extent */ + if (pread(s->fd, &bitmap_entry, 1, bitmap_offset + (extent_offset / 8)) + != 1) { return -1; - - if (!((bitmap_entry >> (extent_offset % 8)) & 1)) - { -// fprintf(stderr, "sector (%x) in bitmap not allocated\n", -// sector_num); - return -1; // not allocated } - if (lseek(s->fd, block_offset, SEEK_SET) == (off_t)-1) { - return -1; + if (!((bitmap_entry >> (extent_offset % 8)) & 1)) { + return -1; /* not allocated */ } - return 0; + return bitmap_offset + (512 * (s->bitmap_blocks + extent_offset)); } static int bochs_read(BlockDriverState *bs, int64_t sector_num, @@ -226,13 +203,13 @@ static int bochs_read(BlockDriverState *bs, int64_t sector_num, int ret; while (nb_sectors > 0) { - if (!seek_to_sector(bs, sector_num)) - { - ret = read(s->fd, buf, 512); - if (ret != 512) - return -1; - } - else + int64_t block_offset = seek_to_sector(bs, sector_num); + if (block_offset >= 0) { + ret = pread(s->fd, buf, 512, block_offset); + if (ret != 512) { + return -1; + } + } else memset(buf, 0, 512); nb_sectors--; sector_num++; -- 1.6.6.1 ^ permalink raw reply related [flat|nested] 40+ messages in thread
* [Qemu-devel] [PATCH 07/11] bochs: use qemu block API 2010-05-07 15:13 [Qemu-devel] [PULL 00/11] Block patches Kevin Wolf ` (5 preceding siblings ...) 2010-05-07 15:14 ` [Qemu-devel] [PATCH 06/11] bochs: use pread Kevin Wolf @ 2010-05-07 15:14 ` Kevin Wolf 2010-05-07 15:14 ` [Qemu-devel] [PATCH 08/11] block: Avoid unchecked casts for AIOCBs Kevin Wolf ` (3 subsequent siblings) 10 siblings, 0 replies; 40+ messages in thread From: Kevin Wolf @ 2010-05-07 15:14 UTC (permalink / raw) To: aliguori; +Cc: kwolf, qemu-devel From: Christoph Hellwig <hch@lst.de> Use bdrv_pwrite to access the backing device instead of pread, and convert the driver to implementing the bdrv_open method which gives it an already opened BlockDriverState for the underlying device. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Kevin Wolf <kwolf@redhat.com> --- block/bochs.c | 30 +++++++++--------------------- 1 files changed, 9 insertions(+), 21 deletions(-) diff --git a/block/bochs.c b/block/bochs.c index b54f54d..5fe2fa3 100644 --- a/block/bochs.c +++ b/block/bochs.c @@ -80,8 +80,6 @@ struct bochs_header { }; typedef struct BDRVBochsState { - int fd; - uint32_t *catalog_bitmap; int catalog_size; @@ -109,23 +107,16 @@ static int bochs_probe(const uint8_t *buf, int buf_size, const char *filename) return 0; } -static int bochs_open(BlockDriverState *bs, const char *filename, int flags) +static int bochs_open(BlockDriverState *bs, int flags) { BDRVBochsState *s = bs->opaque; - int fd, i; + int i; struct bochs_header bochs; struct bochs_header_v1 header_v1; - fd = open(filename, O_RDONLY | O_BINARY); - if (fd < 0) { - return -1; - } - bs->read_only = 1; // no write support yet - s->fd = fd; - - if (pread(fd, &bochs, sizeof(bochs), 0) != sizeof(bochs)) { + if (bdrv_pread(bs->file, 0, &bochs, sizeof(bochs)) != sizeof(bochs)) { goto fail; } @@ -146,8 +137,8 @@ static int bochs_open(BlockDriverState *bs, const char *filename, int flags) s->catalog_size = le32_to_cpu(bochs.extra.redolog.catalog); s->catalog_bitmap = qemu_malloc(s->catalog_size * 4); - if (pread(s->fd, s->catalog_bitmap, s->catalog_size * 4, - le32_to_cpu(bochs.header)) != s->catalog_size * 4) + if (bdrv_pread(bs->file, le32_to_cpu(bochs.header), s->catalog_bitmap, + s->catalog_size * 4) != s->catalog_size * 4) goto fail; for (i = 0; i < s->catalog_size; i++) le32_to_cpus(&s->catalog_bitmap[i]); @@ -161,7 +152,6 @@ static int bochs_open(BlockDriverState *bs, const char *filename, int flags) return 0; fail: - close(fd); return -1; } @@ -184,8 +174,8 @@ static int64_t seek_to_sector(BlockDriverState *bs, int64_t sector_num) (s->extent_blocks + s->bitmap_blocks)); /* read in bitmap for current extent */ - if (pread(s->fd, &bitmap_entry, 1, bitmap_offset + (extent_offset / 8)) - != 1) { + if (bdrv_pread(bs->file, bitmap_offset + (extent_offset / 8), + &bitmap_entry, 1) != 1) { return -1; } @@ -199,13 +189,12 @@ static int64_t seek_to_sector(BlockDriverState *bs, int64_t sector_num) static int bochs_read(BlockDriverState *bs, int64_t sector_num, uint8_t *buf, int nb_sectors) { - BDRVBochsState *s = bs->opaque; int ret; while (nb_sectors > 0) { int64_t block_offset = seek_to_sector(bs, sector_num); if (block_offset >= 0) { - ret = pread(s->fd, buf, 512, block_offset); + ret = bdrv_pread(bs->file, block_offset, buf, 512); if (ret != 512) { return -1; } @@ -222,14 +211,13 @@ static void bochs_close(BlockDriverState *bs) { BDRVBochsState *s = bs->opaque; qemu_free(s->catalog_bitmap); - close(s->fd); } static BlockDriver bdrv_bochs = { .format_name = "bochs", .instance_size = sizeof(BDRVBochsState), .bdrv_probe = bochs_probe, - .bdrv_file_open = bochs_open, + .bdrv_open = bochs_open, .bdrv_read = bochs_read, .bdrv_close = bochs_close, }; -- 1.6.6.1 ^ permalink raw reply related [flat|nested] 40+ messages in thread
* [Qemu-devel] [PATCH 08/11] block: Avoid unchecked casts for AIOCBs 2010-05-07 15:13 [Qemu-devel] [PULL 00/11] Block patches Kevin Wolf ` (6 preceding siblings ...) 2010-05-07 15:14 ` [Qemu-devel] [PATCH 07/11] bochs: use qemu block API Kevin Wolf @ 2010-05-07 15:14 ` Kevin Wolf 2010-05-07 15:14 ` [Qemu-devel] [PATCH 09/11] block: Fix protocol detection for Windows devices Kevin Wolf ` (2 subsequent siblings) 10 siblings, 0 replies; 40+ messages in thread From: Kevin Wolf @ 2010-05-07 15:14 UTC (permalink / raw) To: aliguori; +Cc: kwolf, qemu-devel Use container_of for one direction and &acb->common for the other one. Signed-off-by: Kevin Wolf <kwolf@redhat.com> --- block.c | 3 ++- block/blkdebug.c | 4 ++-- block/qcow.c | 2 +- block/qcow2.c | 2 +- block/vdi.c | 2 +- 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/block.c b/block.c index 48305b7..6345599 100644 --- a/block.c +++ b/block.c @@ -2108,7 +2108,8 @@ typedef struct BlockDriverAIOCBSync { static void bdrv_aio_cancel_em(BlockDriverAIOCB *blockacb) { - BlockDriverAIOCBSync *acb = (BlockDriverAIOCBSync *)blockacb; + BlockDriverAIOCBSync *acb = + container_of(blockacb, BlockDriverAIOCBSync, common); qemu_bh_delete(acb->bh); acb->bh = NULL; qemu_aio_release(acb); diff --git a/block/blkdebug.c b/block/blkdebug.c index bb4a91a..8325f75 100644 --- a/block/blkdebug.c +++ b/block/blkdebug.c @@ -320,7 +320,7 @@ static void error_callback_bh(void *opaque) static void blkdebug_aio_cancel(BlockDriverAIOCB *blockacb) { - BlkdebugAIOCB *acb = (BlkdebugAIOCB*) blockacb; + BlkdebugAIOCB *acb = container_of(blockacb, BlkdebugAIOCB, common); qemu_aio_release(acb); } @@ -347,7 +347,7 @@ static BlockDriverAIOCB *inject_error(BlockDriverState *bs, acb->bh = bh; qemu_bh_schedule(bh); - return (BlockDriverAIOCB*) acb; + return &acb->common; } static BlockDriverAIOCB *blkdebug_aio_readv(BlockDriverState *bs, diff --git a/block/qcow.c b/block/qcow.c index 2883c40..449858f 100644 --- a/block/qcow.c +++ b/block/qcow.c @@ -502,7 +502,7 @@ typedef struct QCowAIOCB { static void qcow_aio_cancel(BlockDriverAIOCB *blockacb) { - QCowAIOCB *acb = (QCowAIOCB *)blockacb; + QCowAIOCB *acb = container_of(blockacb, QCowAIOCB, common); if (acb->hd_aiocb) bdrv_aio_cancel(acb->hd_aiocb); qemu_aio_release(acb); diff --git a/block/qcow2.c b/block/qcow2.c index 21ed6f8..40bd32a 100644 --- a/block/qcow2.c +++ b/block/qcow2.c @@ -340,7 +340,7 @@ typedef struct QCowAIOCB { static void qcow_aio_cancel(BlockDriverAIOCB *blockacb) { - QCowAIOCB *acb = (QCowAIOCB *)blockacb; + QCowAIOCB *acb = container_of(blockacb, QCowAIOCB, common); if (acb->hd_aiocb) bdrv_aio_cancel(acb->hd_aiocb); qemu_aio_release(acb); diff --git a/block/vdi.c b/block/vdi.c index 1d257b4..2b4d2c2 100644 --- a/block/vdi.c +++ b/block/vdi.c @@ -469,7 +469,7 @@ static int vdi_is_allocated(BlockDriverState *bs, int64_t sector_num, static void vdi_aio_cancel(BlockDriverAIOCB *blockacb) { /* TODO: This code is untested. How can I get it executed? */ - VdiAIOCB *acb = (VdiAIOCB *)blockacb; + VdiAIOCB *acb = container_of(blockacb, VdiAIOCB, common); logout("\n"); if (acb->hd_aiocb) { bdrv_aio_cancel(acb->hd_aiocb); -- 1.6.6.1 ^ permalink raw reply related [flat|nested] 40+ messages in thread
* [Qemu-devel] [PATCH 09/11] block: Fix protocol detection for Windows devices 2010-05-07 15:13 [Qemu-devel] [PULL 00/11] Block patches Kevin Wolf ` (7 preceding siblings ...) 2010-05-07 15:14 ` [Qemu-devel] [PATCH 08/11] block: Avoid unchecked casts for AIOCBs Kevin Wolf @ 2010-05-07 15:14 ` Kevin Wolf 2010-05-07 15:14 ` [Qemu-devel] [PATCH 10/11] block: Fix bdrv_commit Kevin Wolf 2010-05-07 15:14 ` [Qemu-devel] [PATCH 11/11] block/vdi: Allow disk images of size 0 Kevin Wolf 10 siblings, 0 replies; 40+ messages in thread From: Kevin Wolf @ 2010-05-07 15:14 UTC (permalink / raw) To: aliguori; +Cc: kwolf, qemu-devel We can't assume the file protocol for Windows devices, they need the same detection as other files for which an explicit protocol is not specified. Signed-off-by: Kevin Wolf <kwolf@redhat.com> --- block.c | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-) diff --git a/block.c b/block.c index 6345599..977d01f 100644 --- a/block.c +++ b/block.c @@ -287,16 +287,18 @@ static BlockDriver *find_protocol(const char *filename) char protocol[128]; int len; const char *p; + int is_drive; /* TODO Drivers without bdrv_file_open must be specified explicitly */ #ifdef _WIN32 - if (is_windows_drive(filename) || - is_windows_drive_prefix(filename)) - return bdrv_find_format("file"); + is_drive = is_windows_drive(filename) || + is_windows_drive_prefix(filename); +#else + is_drive = 0; #endif p = strchr(filename, ':'); - if (!p) { + if (!p || is_drive) { drv1 = find_hdev_driver(filename); if (!drv1) { drv1 = bdrv_find_format("file"); -- 1.6.6.1 ^ permalink raw reply related [flat|nested] 40+ messages in thread
* [Qemu-devel] [PATCH 10/11] block: Fix bdrv_commit 2010-05-07 15:13 [Qemu-devel] [PULL 00/11] Block patches Kevin Wolf ` (8 preceding siblings ...) 2010-05-07 15:14 ` [Qemu-devel] [PATCH 09/11] block: Fix protocol detection for Windows devices Kevin Wolf @ 2010-05-07 15:14 ` Kevin Wolf 2010-05-07 15:14 ` [Qemu-devel] [PATCH 11/11] block/vdi: Allow disk images of size 0 Kevin Wolf 10 siblings, 0 replies; 40+ messages in thread From: Kevin Wolf @ 2010-05-07 15:14 UTC (permalink / raw) To: aliguori; +Cc: kwolf, qemu-devel When reopening the image, don't guess the driver, but use the same driver as was used before. This is important if the format=... option was used for that image. Signed-off-by: Kevin Wolf <kwolf@redhat.com> --- block.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/block.c b/block.c index 977d01f..c134c2b 100644 --- a/block.c +++ b/block.c @@ -701,12 +701,12 @@ int bdrv_commit(BlockDriverState *bs) bdrv_delete(bs->backing_hd); bs->backing_hd = NULL; bs_rw = bdrv_new(""); - rw_ret = bdrv_open(bs_rw, filename, open_flags | BDRV_O_RDWR, NULL); + rw_ret = bdrv_open(bs_rw, filename, open_flags | BDRV_O_RDWR, drv); if (rw_ret < 0) { bdrv_delete(bs_rw); /* try to re-open read-only */ bs_ro = bdrv_new(""); - ret = bdrv_open(bs_ro, filename, open_flags & ~BDRV_O_RDWR, NULL); + ret = bdrv_open(bs_ro, filename, open_flags & ~BDRV_O_RDWR, drv); if (ret < 0) { bdrv_delete(bs_ro); /* drive not functional anymore */ @@ -758,7 +758,7 @@ ro_cleanup: bdrv_delete(bs->backing_hd); bs->backing_hd = NULL; bs_ro = bdrv_new(""); - ret = bdrv_open(bs_ro, filename, open_flags & ~BDRV_O_RDWR, NULL); + ret = bdrv_open(bs_ro, filename, open_flags & ~BDRV_O_RDWR, drv); if (ret < 0) { bdrv_delete(bs_ro); /* drive not functional anymore */ -- 1.6.6.1 ^ permalink raw reply related [flat|nested] 40+ messages in thread
* [Qemu-devel] [PATCH 11/11] block/vdi: Allow disk images of size 0 2010-05-07 15:13 [Qemu-devel] [PULL 00/11] Block patches Kevin Wolf ` (9 preceding siblings ...) 2010-05-07 15:14 ` [Qemu-devel] [PATCH 10/11] block: Fix bdrv_commit Kevin Wolf @ 2010-05-07 15:14 ` Kevin Wolf 10 siblings, 0 replies; 40+ messages in thread From: Kevin Wolf @ 2010-05-07 15:14 UTC (permalink / raw) To: aliguori; +Cc: kwolf, qemu-devel From: Stefan Weil <weil@mail.berlios.de> Even it is not very useful, users may create images of size 0. Without the special option CONFIG_ZERO_MALLOC, qemu_mallocz aborts execution when it is told to allocate 0 bytes, so avoid this kind of call. Cc: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Stefan Weil <weil@mail.berlios.de> Signed-off-by: Kevin Wolf <kwolf@redhat.com> --- block/vdi.c | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-) diff --git a/block/vdi.c b/block/vdi.c index 2b4d2c2..3ea4103 100644 --- a/block/vdi.c +++ b/block/vdi.c @@ -435,7 +435,9 @@ static int vdi_open(BlockDriverState *bs, int flags) bmap_size = header.blocks_in_image * sizeof(uint32_t); bmap_size = (bmap_size + SECTOR_SIZE - 1) / SECTOR_SIZE; - s->bmap = qemu_malloc(bmap_size * SECTOR_SIZE); + if (bmap_size > 0) { + s->bmap = qemu_malloc(bmap_size * SECTOR_SIZE); + } if (bdrv_read(bs->file, s->bmap_sector, (uint8_t *)s->bmap, bmap_size) < 0) { goto fail_free_bmap; } @@ -857,7 +859,10 @@ static int vdi_create(const char *filename, QEMUOptionParameter *options) result = -errno; } - bmap = (uint32_t *)qemu_mallocz(bmap_size); + bmap = NULL; + if (bmap_size > 0) { + bmap = (uint32_t *)qemu_mallocz(bmap_size); + } for (i = 0; i < blocks; i++) { if (image_type == VDI_TYPE_STATIC) { bmap[i] = i; -- 1.6.6.1 ^ permalink raw reply related [flat|nested] 40+ messages in thread
* [Qemu-devel] [PULL 00/11] Block patches @ 2010-10-22 13:43 Kevin Wolf 0 siblings, 0 replies; 40+ messages in thread From: Kevin Wolf @ 2010-10-22 13:43 UTC (permalink / raw) To: anthony; +Cc: kwolf, qemu-devel The following changes since commit d03703c81a202cea156811e5dbc8e88627c19986: curses: Fix control-{@[\]^_} and ESC (2010-10-21 18:31:28 +0200) are available in the git repository at: git://repo.or.cz/qemu/kevin.git for-anthony Christoph Hellwig (1): ide: set WCACHE supported in IDENTIFY data Kevin Wolf (7): qcow2: Simplify image creation qcow2: Remove old image creation function qemu-io: New command map qemu-img: Fix qemu-img convert -obacking_file ide: Factor ide_flush_cache out ide: Handle flush failure virtio-blk: Respect werror option for flushes Stefan Hajnoczi (1): qcow2: Support exact L1 table growth Stefan Weil (1): block: Use GCC_FMT_ATTR and fix a format error edison (1): Copy snapshots out of QCOW2 disk block.c | 16 +++ block.h | 2 + block/blkverify.c | 5 +- block/qcow2-cluster.c | 25 +++-- block/qcow2-snapshot.c | 33 ++++++- block/qcow2.c | 278 ++++++++++++++++-------------------------------- block/qcow2.h | 3 +- block_int.h | 2 + hw/ide/core.c | 28 ++++-- hw/ide/internal.h | 3 +- hw/virtio-blk.c | 8 ++- qemu-img-cmds.hx | 4 +- qemu-img.c | 26 +++++- qemu-img.texi | 4 +- qemu-io.c | 39 +++++++ 15 files changed, 264 insertions(+), 212 deletions(-) ^ permalink raw reply [flat|nested] 40+ messages in thread
* [Qemu-devel] [PULL 00/11] Block patches @ 2011-04-27 13:42 Kevin Wolf 2011-04-27 14:26 ` Aurelien Jarno 0 siblings, 1 reply; 40+ messages in thread From: Kevin Wolf @ 2011-04-27 13:42 UTC (permalink / raw) To: anthony; +Cc: kwolf, qemu-devel The following changes since commit 430a3c18064fd3c007048d757e8bd0fff45fcc99: configure: reenable opengl by default (2011-04-26 23:26:49 +0200) are available in the git repository at: git://repo.or.cz/qemu/kevin.git for-anthony Amit Shah (1): atapi: Add 'medium ready' to 'medium not ready' transition on cd change Anthony Liguori (1): qemu-img: allow rebase to a NULL backing file when unsafe Avishay Traeger (1): Improve accuracy of block migration bandwidth calculation Jes Sorensen (2): Add dd-style SIGUSR1 progress reporting Remove obsolete 'enabled' variable from progress state Kevin Wolf (5): ide: Split atapi.c out ide/atapi: Factor commands out ide/atapi: Use table instead of switch for commands ide/atapi: Replace bdrv_get_geometry calls by s->nb_sectors ide/atapi: Introduce CHECK_READY flag for commands Stefan Hajnoczi (1): qed: Fix consistency check on 32-bit hosts Makefile.objs | 2 +- block-migration.c | 23 +- block/qed-check.c | 4 +- block/qed.h | 2 +- hw/ide/atapi.c | 1134 +++++++++++++++++++++++++++++++++++++++++++++++++++++ hw/ide/core.c | 1067 +------------------------------------------------- hw/ide/internal.h | 14 +- qemu-img.c | 2 +- qemu-progress.c | 61 +++- 9 files changed, 1221 insertions(+), 1088 deletions(-) create mode 100644 hw/ide/atapi.c ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PULL 00/11] Block patches 2011-04-27 13:42 Kevin Wolf @ 2011-04-27 14:26 ` Aurelien Jarno 0 siblings, 0 replies; 40+ messages in thread From: Aurelien Jarno @ 2011-04-27 14:26 UTC (permalink / raw) To: Kevin Wolf; +Cc: qemu-devel On Wed, Apr 27, 2011 at 03:42:59PM +0200, Kevin Wolf wrote: > The following changes since commit 430a3c18064fd3c007048d757e8bd0fff45fcc99: > > configure: reenable opengl by default (2011-04-26 23:26:49 +0200) > > are available in the git repository at: > git://repo.or.cz/qemu/kevin.git for-anthony > > Amit Shah (1): > atapi: Add 'medium ready' to 'medium not ready' transition on cd change > > Anthony Liguori (1): > qemu-img: allow rebase to a NULL backing file when unsafe > > Avishay Traeger (1): > Improve accuracy of block migration bandwidth calculation > > Jes Sorensen (2): > Add dd-style SIGUSR1 progress reporting > Remove obsolete 'enabled' variable from progress state > > Kevin Wolf (5): > ide: Split atapi.c out > ide/atapi: Factor commands out > ide/atapi: Use table instead of switch for commands > ide/atapi: Replace bdrv_get_geometry calls by s->nb_sectors > ide/atapi: Introduce CHECK_READY flag for commands > > Stefan Hajnoczi (1): > qed: Fix consistency check on 32-bit hosts > > Makefile.objs | 2 +- > block-migration.c | 23 +- > block/qed-check.c | 4 +- > block/qed.h | 2 +- > hw/ide/atapi.c | 1134 +++++++++++++++++++++++++++++++++++++++++++++++++++++ > hw/ide/core.c | 1067 +------------------------------------------------- > hw/ide/internal.h | 14 +- > qemu-img.c | 2 +- > qemu-progress.c | 61 +++- > 9 files changed, 1221 insertions(+), 1088 deletions(-) > create mode 100644 hw/ide/atapi.c > Thanks, pulled. -- Aurelien Jarno GPG: 1024D/F1BCDB73 aurelien@aurel32.net http://www.aurel32.net ^ permalink raw reply [flat|nested] 40+ messages in thread
* [Qemu-devel] [PULL 00/11] Block patches @ 2012-08-10 16:47 Kevin Wolf 2012-08-12 18:14 ` Anthony Liguori 0 siblings, 1 reply; 40+ messages in thread From: Kevin Wolf @ 2012-08-10 16:47 UTC (permalink / raw) To: anthony; +Cc: kwolf, qemu-devel The following changes since commit 3d1d9652978ac5a32a0beb4bdf6065ca39440d89: handle device help before accelerator set up (2012-08-09 19:53:01 +0000) are available in the git repository at: http://repo.or.cz/r/qemu/kevin.git for-anthony Avi Kivity (1): virtio-blk: fix use-after-free while handling scsi commands Jason Baron (2): ahci: Fix ahci cdrom read corruptions for reads > 128k ahci: Fix sglist memleak in ahci_dma_rw_buf() Kevin Wolf (1): qemu-iotests: Save some sed processes Paolo Bonzini (3): virtio-blk: support VIRTIO_BLK_F_CONFIG_WCE virtio-blk: disable write cache if not negotiated blockdev: flip default cache mode from writethrough to writeback Stefan Hajnoczi (4): qed: mark image clean after repair succeeds qcow2: mark image clean after repair succeeds block: add BLOCK_O_CHECK for qemu-img check qemu-iotests: skip 039 with ./check -nocache block.h | 1 + block/qcow2.c | 32 ++++++++++++++++-------------- block/qed-check.c | 26 ++++++++++++++++++++++++ block/qed.c | 11 +-------- block/qed.h | 5 ++++ blockdev.c | 1 + dma-helpers.c | 1 + hw/ide/ahci.c | 44 +++++++++++++++++++++++++++++++++++------ hw/ide/internal.h | 1 + hw/virtio-blk.c | 31 +++++++++++++++++++++++++++- hw/virtio-blk.h | 4 ++- qemu-img.c | 2 +- tests/qemu-iotests/039 | 1 + tests/qemu-iotests/039.out | 6 +++++ tests/qemu-iotests/common.rc | 34 ++++++++++++++++++++++--------- 15 files changed, 155 insertions(+), 45 deletions(-) ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PULL 00/11] Block patches 2012-08-10 16:47 Kevin Wolf @ 2012-08-12 18:14 ` Anthony Liguori 0 siblings, 0 replies; 40+ messages in thread From: Anthony Liguori @ 2012-08-12 18:14 UTC (permalink / raw) To: Kevin Wolf; +Cc: qemu-devel Kevin Wolf <kwolf@redhat.com> writes: > The following changes since commit 3d1d9652978ac5a32a0beb4bdf6065ca39440d89: > > handle device help before accelerator set up (2012-08-09 19:53:01 +0000) > > are available in the git repository at: > http://repo.or.cz/r/qemu/kevin.git for-anthony Pulled. Thanks. Regards, Anthony Liguori > > Avi Kivity (1): > virtio-blk: fix use-after-free while handling scsi commands > > Jason Baron (2): > ahci: Fix ahci cdrom read corruptions for reads > 128k > ahci: Fix sglist memleak in ahci_dma_rw_buf() > > Kevin Wolf (1): > qemu-iotests: Save some sed processes > > Paolo Bonzini (3): > virtio-blk: support VIRTIO_BLK_F_CONFIG_WCE > virtio-blk: disable write cache if not negotiated > blockdev: flip default cache mode from writethrough to writeback > > Stefan Hajnoczi (4): > qed: mark image clean after repair succeeds > qcow2: mark image clean after repair succeeds > block: add BLOCK_O_CHECK for qemu-img check > qemu-iotests: skip 039 with ./check -nocache > > block.h | 1 + > block/qcow2.c | 32 ++++++++++++++++-------------- > block/qed-check.c | 26 ++++++++++++++++++++++++ > block/qed.c | 11 +-------- > block/qed.h | 5 ++++ > blockdev.c | 1 + > dma-helpers.c | 1 + > hw/ide/ahci.c | 44 +++++++++++++++++++++++++++++++++++------ > hw/ide/internal.h | 1 + > hw/virtio-blk.c | 31 +++++++++++++++++++++++++++- > hw/virtio-blk.h | 4 ++- > qemu-img.c | 2 +- > tests/qemu-iotests/039 | 1 + > tests/qemu-iotests/039.out | 6 +++++ > tests/qemu-iotests/common.rc | 34 ++++++++++++++++++++++--------- > 15 files changed, 155 insertions(+), 45 deletions(-) ^ permalink raw reply [flat|nested] 40+ messages in thread
* [Qemu-devel] [PULL 00/11] Block patches @ 2012-09-14 12:39 Kevin Wolf 2012-09-17 18:19 ` Anthony Liguori 2012-09-18 17:49 ` Michael Tokarev 0 siblings, 2 replies; 40+ messages in thread From: Kevin Wolf @ 2012-09-14 12:39 UTC (permalink / raw) To: anthony; +Cc: kwolf, qemu-devel The following changes since commit e0a1e32dbc41e6b2aabb436a9417dfd32177a3dc: Merge branch 'usb.64' of git://git.kraxel.org/qemu (2012-09-11 18:06:56 +0200) are available in the git repository at: git://repo.or.cz/qemu/kevin.git for-anthony Benoît Canet (2): qapi: Add SnapshotInfo and ImageInfo. qemu-img: Add json output option to the info command. Daniel P. Berrange (1): Don't require encryption password for 'qemu-img info' command Dunrong Huang (1): block: Don't forget to delete temporary file Jason Baron (1): ahci: properly reset PxCMD on HBA reset MORITA Kazutaka (1): sheepdog: fix savevm and loadvm Pavel Hrdina (1): block: fix block tray status Ronnie Sahlberg (1): ATAPI: STARTSTOPUNIT only eject/load media if powercondition is 0 Stefan Weil (3): ide: Fix error messages from static code analysis (no real error) block/curl: Fix wrong free statement vdi: Fix warning from clang Makefile | 3 +- block.c | 10 ++- block/curl.c | 3 +- block/sheepdog.c | 3 +- block/vdi.c | 25 +++--- hw/ide/ahci.c | 2 +- hw/ide/atapi.c | 6 ++ hw/ide/core.c | 11 +-- qapi-schema.json | 64 ++++++++++++++ qemu-img-cmds.hx | 4 +- qemu-img.c | 257 ++++++++++++++++++++++++++++++++++++++++++----------- qemu-img.texi | 5 +- 12 files changed, 305 insertions(+), 88 deletions(-) ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PULL 00/11] Block patches 2012-09-14 12:39 Kevin Wolf @ 2012-09-17 18:19 ` Anthony Liguori 2012-09-18 17:49 ` Michael Tokarev 1 sibling, 0 replies; 40+ messages in thread From: Anthony Liguori @ 2012-09-17 18:19 UTC (permalink / raw) To: Kevin Wolf; +Cc: qemu-devel Kevin Wolf <kwolf@redhat.com> writes: > The following changes since commit e0a1e32dbc41e6b2aabb436a9417dfd32177a3dc: > > Merge branch 'usb.64' of git://git.kraxel.org/qemu (2012-09-11 18:06:56 +0200) > > are available in the git repository at: > > git://repo.or.cz/qemu/kevin.git for-anthony > Pulled. Thanks. Regards, Anthony Liguori > Benoît Canet (2): > qapi: Add SnapshotInfo and ImageInfo. > qemu-img: Add json output option to the info command. > > Daniel P. Berrange (1): > Don't require encryption password for 'qemu-img info' command > > Dunrong Huang (1): > block: Don't forget to delete temporary file > > Jason Baron (1): > ahci: properly reset PxCMD on HBA reset > > MORITA Kazutaka (1): > sheepdog: fix savevm and loadvm > > Pavel Hrdina (1): > block: fix block tray status > > Ronnie Sahlberg (1): > ATAPI: STARTSTOPUNIT only eject/load media if powercondition is 0 > > Stefan Weil (3): > ide: Fix error messages from static code analysis (no real error) > block/curl: Fix wrong free statement > vdi: Fix warning from clang > > Makefile | 3 +- > block.c | 10 ++- > block/curl.c | 3 +- > block/sheepdog.c | 3 +- > block/vdi.c | 25 +++--- > hw/ide/ahci.c | 2 +- > hw/ide/atapi.c | 6 ++ > hw/ide/core.c | 11 +-- > qapi-schema.json | 64 ++++++++++++++ > qemu-img-cmds.hx | 4 +- > qemu-img.c | 257 ++++++++++++++++++++++++++++++++++++++++++----------- > qemu-img.texi | 5 +- > 12 files changed, 305 insertions(+), 88 deletions(-) ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PULL 00/11] Block patches 2012-09-14 12:39 Kevin Wolf 2012-09-17 18:19 ` Anthony Liguori @ 2012-09-18 17:49 ` Michael Tokarev 2012-09-19 8:42 ` Kevin Wolf 1 sibling, 1 reply; 40+ messages in thread From: Michael Tokarev @ 2012-09-18 17:49 UTC (permalink / raw) To: Kevin Wolf; +Cc: Jason Baron, qemu-devel, Ronnie Sahlberg, qemu-stable On 14.09.2012 16:39, Kevin Wolf wrote: > The following changes since commit e0a1e32dbc41e6b2aabb436a9417dfd32177a3dc: > > Merge branch 'usb.64' of git://git.kraxel.org/qemu (2012-09-11 18:06:56 +0200) > > are available in the git repository at: > > git://repo.or.cz/qemu/kevin.git for-anthony Are any of these appropriate for -stable? I think some are, below: > Benoît Canet (2): > qapi: Add SnapshotInfo and ImageInfo. > qemu-img: Add json output option to the info command. > > Daniel P. Berrange (1): > Don't require encryption password for 'qemu-img info' command > > Dunrong Huang (1): > block: Don't forget to delete temporary file This? Appears to be a minor case. > Jason Baron (1): > ahci: properly reset PxCMD on HBA reset Most likely this. Jason? > MORITA Kazutaka (1): > sheepdog: fix savevm and loadvm This, but does anyone really use sheepdog with savevm/loadvm? Probably a very minor issue too, not worth -stable. > Pavel Hrdina (1): > block: fix block tray status And this, > Ronnie Sahlberg (1): > ATAPI: STARTSTOPUNIT only eject/load media if powercondition is 0 And probably this too? I'm not sure about this one. Ronnie? > Stefan Weil (3): > ide: Fix error messages from static code analysis (no real error) > block/curl: Fix wrong free statement > vdi: Fix warning from clang Thanks, /mjt ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PULL 00/11] Block patches 2012-09-18 17:49 ` Michael Tokarev @ 2012-09-19 8:42 ` Kevin Wolf 0 siblings, 0 replies; 40+ messages in thread From: Kevin Wolf @ 2012-09-19 8:42 UTC (permalink / raw) To: Michael Tokarev; +Cc: Jason Baron, qemu-devel, Ronnie Sahlberg, qemu-stable Am 18.09.2012 19:49, schrieb Michael Tokarev: > On 14.09.2012 16:39, Kevin Wolf wrote: >> The following changes since commit e0a1e32dbc41e6b2aabb436a9417dfd32177a3dc: >> >> Merge branch 'usb.64' of git://git.kraxel.org/qemu (2012-09-11 18:06:56 +0200) >> >> are available in the git repository at: >> >> git://repo.or.cz/qemu/kevin.git for-anthony > > Are any of these appropriate for -stable? I think some are, below: I think all of your suggestions would be appropriate, even though most of them fix rather theoretical cases. >> Jason Baron (1): >> ahci: properly reset PxCMD on HBA reset > > Most likely this. Jason? Yes, this fixes a real visible bug with AHCI CD-ROMs. Kevin ^ permalink raw reply [flat|nested] 40+ messages in thread
* [Qemu-devel] [PULL 00/11] Block patches @ 2013-04-15 8:22 Stefan Hajnoczi 0 siblings, 0 replies; 40+ messages in thread From: Stefan Hajnoczi @ 2013-04-15 8:22 UTC (permalink / raw) To: qemu-devel; +Cc: Anthony Liguori The following changes since commit e2ec3f976803b360c70d9ae2ba13852fa5d11665: qjson: to_json() case QTYPE_QSTRING is buggy, rewrite (2013-04-13 19:40:25 +0000) are available in the git repository at: git://github.com/stefanha/qemu.git block for you to fetch changes up to dc7588c1eb3008bda53dde1d6b890cd299758155: rbd: add an asynchronous flush (2013-04-15 10:18:05 +0200) ---------------------------------------------------------------- Josh Durgin (1): rbd: add an asynchronous flush Kevin Wolf (5): block: Introduce bdrv_writev_vmstate savevm: Implement block_writev_buffer() block: Introduce bdrv_pwritev() for qcow2_save_vmstate qemu-iotests: A few more bdrv_pread/pwrite tests qemu-iotests: Add test for -drive options Richard W.M. Jones (3): block: Add support for Secure Shell (ssh) block device. block: ssh: Use libssh2_sftp_fsync (if supported by libssh2) to flush to disk. iotests: Add 'check -ssh' option to test Secure Shell block device. Stefan Hajnoczi (2): qemu-iotests: filter QEMU_PROG in 051.out ide: refuse WIN_READ_NATIVE_MAX on empty device block.c | 105 +++- block/Makefile.objs | 1 + block/qcow2.c | 6 +- block/rbd.c | 37 +- block/sheepdog.c | 13 +- block/ssh.c | 1063 ++++++++++++++++++++++++++++++++++++++ configure | 73 +++ hw/ide/core.c | 4 + include/block/block.h | 3 + include/block/block_int.h | 4 +- include/migration/qemu-file.h | 2 +- qemu-doc.texi | 54 ++ qemu-options.hx | 12 + savevm.c | 25 +- tests/qemu-iotests/002 | 13 + tests/qemu-iotests/002.out | 26 + tests/qemu-iotests/051 | 148 ++++++ tests/qemu-iotests/051.out | 162 ++++++ tests/qemu-iotests/common | 5 + tests/qemu-iotests/common.filter | 6 + tests/qemu-iotests/common.rc | 3 + tests/qemu-iotests/group | 1 + 22 files changed, 1722 insertions(+), 44 deletions(-) create mode 100644 block/ssh.c create mode 100755 tests/qemu-iotests/051 create mode 100644 tests/qemu-iotests/051.out -- 1.8.1.4 ^ permalink raw reply [flat|nested] 40+ messages in thread
* [Qemu-devel] [PULL 00/11] Block patches @ 2013-04-26 11:44 Stefan Hajnoczi 0 siblings, 0 replies; 40+ messages in thread From: Stefan Hajnoczi @ 2013-04-26 11:44 UTC (permalink / raw) To: qemu-devel; +Cc: Anthony Liguori, Stefan Hajnoczi The following changes since commit e3351000cd682200835763caca87adf708ed1c65: Makefile: Use QEMU_FLAGS for DTC compilation (2013-04-26 02:48:10 +0200) are available in the git repository at: git://github.com/stefanha/qemu.git block for you to fetch changes up to 859e5553a428225de6b8ef302cdcfd68d140b926: sheepdog: fix loadvm operation (2013-04-26 13:37:51 +0200) ---------------------------------------------------------------- Kevin Wolf (2): block: Disable driver-specific options for 1.5 rbd: Fix use after free in rbd_open() Liu Yuan (4): sheepdog: add discard/trim support for sheepdog sheepdog: use BDRV_SECTOR_SIZE sheepdog: implement .bdrv_co_is_allocated() sheepdog: fix loadvm operation MORITA Kazutaka (4): sheepdog: cleanup find_vdi_name sheepdog: add SD_RES_READONLY result code sheepdog: add helper function to reload inode sheepdog: resend write requests when SD_RES_READONLY is received Richard W.M. Jones (1): block/ssh: Require libssh2 >= 1.2.8. block/rbd.c | 9 +- block/sheepdog.c | 308 ++++++++++++++++++++++++++++++++++++++++------- blockdev.c | 118 +++++++++++++++++- configure | 24 +--- tests/qemu-iotests/group | 2 +- 5 files changed, 390 insertions(+), 71 deletions(-) -- 1.8.1.4 ^ permalink raw reply [flat|nested] 40+ messages in thread
* [Qemu-devel] [PULL 00/11] Block patches @ 2013-05-24 14:32 Stefan Hajnoczi 2013-06-17 21:18 ` Anthony Liguori 0 siblings, 1 reply; 40+ messages in thread From: Stefan Hajnoczi @ 2013-05-24 14:32 UTC (permalink / raw) To: qemu-devel; +Cc: Anthony Liguori, Stefan Hajnoczi The following changes since commit 64afc2b4d48fb21e085517c38a59a3f61a11283c: Merge remote-tracking branch 'luiz/queue/qmp' into staging (2013-05-23 14:16:35 -0500) are available in the git repository at: git://github.com/stefanha/qemu.git block for you to fetch changes up to 02ffb504485f0920cfc75a0982a602f824a9a4f4: coroutine: stop using AioContext in CoQueue (2013-05-24 16:17:56 +0200) ---------------------------------------------------------------- Kevin Wolf (4): blockdev: Rename BlockdevAction -> TransactionAction qemu-io: Fix 'map' output qcow2.py: Subcommand for changing header fields qemu-iotests: Try creating huge qcow2 image Stefan Hajnoczi (2): coroutine: protect global pool with a mutex coroutine: stop using AioContext in CoQueue Wenchao Xia (5): block: package preparation code in qmp_transaction() block: move input parsing code in qmp_transaction() block: package committing code in qmp_transaction() block: package rollback code in qmp_transaction() block: make all steps in qmp_transaction() as callback blockdev.c | 280 ++++++++++++++++++++++++++---------------- include/block/coroutine_int.h | 4 + qapi-schema.json | 21 ++-- qemu-coroutine-lock.c | 56 ++++----- qemu-coroutine.c | 23 +++- qemu-io.c | 46 ++++++- tests/qemu-iotests/054 | 58 +++++++++ tests/qemu-iotests/054.out | 10 ++ tests/qemu-iotests/common.rc | 2 +- tests/qemu-iotests/group | 1 + tests/qemu-iotests/qcow2.py | 17 +++ trace-events | 2 +- 12 files changed, 361 insertions(+), 159 deletions(-) create mode 100755 tests/qemu-iotests/054 create mode 100644 tests/qemu-iotests/054.out -- 1.8.1.4 ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PULL 00/11] Block patches 2013-05-24 14:32 Stefan Hajnoczi @ 2013-06-17 21:18 ` Anthony Liguori 0 siblings, 0 replies; 40+ messages in thread From: Anthony Liguori @ 2013-06-17 21:18 UTC (permalink / raw) To: Stefan Hajnoczi, qemu-devel; +Cc: Anthony Liguori Pulled. Thanks. Regards, Anthony Liguori ^ permalink raw reply [flat|nested] 40+ messages in thread
* [Qemu-devel] [PULL 00/11] Block patches @ 2013-09-20 17:42 Stefan Hajnoczi 0 siblings, 0 replies; 40+ messages in thread From: Stefan Hajnoczi @ 2013-09-20 17:42 UTC (permalink / raw) To: qemu-devel; +Cc: Stefan Hajnoczi, Anthony Liguori The following changes since commit 6c2679fc19560699679200fb42ab4659bcbe7f79: Merge remote-tracking branch 'kiszka/queues/slirp' into staging (2013-09-17 10:01:24 -0500) are available in the git repository at: git://github.com/stefanha/qemu.git block for you to fetch changes up to ef5bc96268ceec64769617dc53b0ac3a20ff351c: virtio-blk: do not relay a previous driver's WCE configuration to the current (2013-09-20 19:27:48 +0200) ---------------------------------------------------------------- Fam Zheng (1): block: don't lose data from last incomplete sector Gabriel Kerneis (2): coroutine: add qemu_coroutine_yield benchmark coroutine: fix /perf/nesting coroutine benchmark Max Reitz (1): qcow2: Correct snapshots size for overlap check Paolo Bonzini (3): qemu-timer: do not take the lock in timer_pending blockdev: do not default cache.no-flush to true virtio-blk: do not relay a previous driver's WCE configuration to the current Stefan Hajnoczi (4): libcacard: link against qemu-error.o for error_report() osdep: warn if open(O_DIRECT) on fails with EINVAL qemu-timer: drop outdated signal safety comments qemu-timer: make qemu_timer_mod_ns() and qemu_timer_del() thread-safe block.c | 2 +- block/qcow2-snapshot.c | 2 +- blockdev.c | 2 +- hw/block/virtio-blk.c | 24 ++++++++++- include/hw/virtio/virtio-blk.h | 1 + include/qemu/timer.h | 17 ++++++++ libcacard/Makefile | 3 +- qemu-timer.c | 92 +++++++++++++++++++++++++++++------------- tests/test-coroutine.c | 45 ++++++++++++++++++--- util/osdep.c | 7 ++++ 10 files changed, 155 insertions(+), 40 deletions(-) -- 1.8.3.1 ^ permalink raw reply [flat|nested] 40+ messages in thread
* [Qemu-devel] [PULL 00/11] Block patches @ 2014-02-14 17:29 Stefan Hajnoczi 2014-02-15 16:37 ` Peter Maydell 0 siblings, 1 reply; 40+ messages in thread From: Stefan Hajnoczi @ 2014-02-14 17:29 UTC (permalink / raw) To: qemu-devel; +Cc: Peter Maydell, Anthony Liguori The following changes since commit 0888a29caac6e1b668e498a0ad4d1fea15de012b: Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging (2014-02-13 15:02:04 +0000) are available in the git repository at: git://github.com/stefanha/qemu.git tags/block-pull-request for you to fetch changes up to 0c5e94ee8339e1aa49020466eba232e6f7c31a0a: block: Open by reference will try device then node_name. (2014-02-14 18:05:39 +0100) ---------------------------------------------------------------- Block pull request ---------------------------------------------------------------- Benoît Canet (3): blockdev: Fix wrong usage of QDECREF causing snapshoted quorum to crash on close. block: Relax bdrv_lookup_bs constraints. block: Open by reference will try device then node_name. Fam Zheng (1): qemu-iotests: Don't run 005 on vmdk split formats Jeff Cody (5): block: Add notes to iSCSI's .bdrv_open and .bdrv_reopen_prepare block: Don't throw away errno via error_setg block: qemu-iotests - fix test 070 (vhdx) block: qemu-iotests - add vhdx log replay tests for qemu-img block: mirror - use local_err to avoid NULL errp Kevin Wolf (2): sdhci: Drop unnecessary #include blockdev: Remove 'type' parameter from blockdev_init() block.c | 36 ++++++++++++++++-------------- block/iscsi.c | 10 +++++++-- block/mirror.c | 19 +++++++++++----- block/qcow2-snapshot.c | 8 ++++--- block/vmdk.c | 6 ++--- blockdev.c | 55 ++++++++++++++++++++++++++++++++-------------- hw/sd/sdhci.c | 1 - tests/qemu-iotests/005 | 2 ++ tests/qemu-iotests/070 | 13 ++++++++++- tests/qemu-iotests/070.out | 15 ++++++++++++- 10 files changed, 115 insertions(+), 50 deletions(-) -- 1.8.5.3 ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PULL 00/11] Block patches 2014-02-14 17:29 Stefan Hajnoczi @ 2014-02-15 16:37 ` Peter Maydell 0 siblings, 0 replies; 40+ messages in thread From: Peter Maydell @ 2014-02-15 16:37 UTC (permalink / raw) To: Stefan Hajnoczi; +Cc: QEMU Developers, Anthony Liguori On 14 February 2014 17:29, Stefan Hajnoczi <stefanha@redhat.com> wrote: > The following changes since commit 0888a29caac6e1b668e498a0ad4d1fea15de012b: > > Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging (2014-02-13 15:02:04 +0000) > > are available in the git repository at: > > > git://github.com/stefanha/qemu.git tags/block-pull-request > > for you to fetch changes up to 0c5e94ee8339e1aa49020466eba232e6f7c31a0a: > > block: Open by reference will try device then node_name. (2014-02-14 18:05:39 +0100) Applied, thanks. -- PMM ^ permalink raw reply [flat|nested] 40+ messages in thread
* [Qemu-devel] [PULL 00/11] Block patches @ 2014-09-26 18:58 Kevin Wolf 2014-09-29 13:03 ` Peter Maydell 0 siblings, 1 reply; 40+ messages in thread From: Kevin Wolf @ 2014-09-26 18:58 UTC (permalink / raw) To: qemu-devel; +Cc: kwolf The following changes since commit 4f2280b2190e39aa6761cc8188626ed9aad350c1: Merge remote-tracking branch 'remotes/mcayland/tags/qemu-sparc-signed' into staging (2014-09-24 13:45:13 +0100) are available in the git repository at: git://repo.or.cz/qemu/kevin.git tags/for-upstream for you to fetch changes up to c9d17ad0dd3f04cdef44d58db97ea9864fbcdee7: qemu-iotests: Fail test if explicit test case number is unknown (2014-09-25 15:25:20 +0200) ---------------------------------------------------------------- Block patches ---------------------------------------------------------------- Fam Zheng (1): qemu-iotests: Fail test if explicit test case number is unknown Kevin Wolf (3): block: Specify -drive legacy option aliases in array block: Catch simultaneous usage of options and their aliases block: Validate node-name Markus Armbruster (4): blockdev: Disentangle BlockDriverState and DriveInfo creation block: Keep DriveInfo alive until BlockDriverState dies qemu-nbd: Destroy the BlockDriverState properly block: Improve message for device name clashing with node name Stefan Hajnoczi (3): blkdebug: show an error for invalid event names docs: add blkdebug block driver documentation vpc: fix beX_to_cpu() and cpu_to_beX() confusion block.c | 21 ++++-- block/blkdebug.c | 22 ++++++- block/vpc.c | 44 ++++++------- blockdev.c | 103 ++++++++++++++++++----------- docs/blkdebug.txt | 161 +++++++++++++++++++++++++++++++++++++++++++++ include/qemu/option.h | 1 + include/sysemu/blockdev.h | 1 + qemu-img.c | 6 +- qemu-nbd.c | 2 +- stubs/Makefile.objs | 1 + stubs/blockdev.c | 12 ++++ tests/qemu-iotests/051 | 23 +++++++ tests/qemu-iotests/051.out | 45 +++++++++++++ tests/qemu-iotests/087.out | 2 +- tests/qemu-iotests/common | 10 ++- util/qemu-option.c | 4 +- 16 files changed, 382 insertions(+), 76 deletions(-) create mode 100644 docs/blkdebug.txt create mode 100644 stubs/blockdev.c ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PULL 00/11] Block patches 2014-09-26 18:58 Kevin Wolf @ 2014-09-29 13:03 ` Peter Maydell 0 siblings, 0 replies; 40+ messages in thread From: Peter Maydell @ 2014-09-29 13:03 UTC (permalink / raw) To: Kevin Wolf; +Cc: QEMU Developers On 26 September 2014 19:58, Kevin Wolf <kwolf@redhat.com> wrote: > The following changes since commit 4f2280b2190e39aa6761cc8188626ed9aad350c1: > > Merge remote-tracking branch 'remotes/mcayland/tags/qemu-sparc-signed' into staging (2014-09-24 13:45:13 +0100) > > are available in the git repository at: > > > git://repo.or.cz/qemu/kevin.git tags/for-upstream > > for you to fetch changes up to c9d17ad0dd3f04cdef44d58db97ea9864fbcdee7: > > qemu-iotests: Fail test if explicit test case number is unknown (2014-09-25 15:25:20 +0200) > > ---------------------------------------------------------------- > Block patches > > ---------------------------------------------------------------- Applied, thanks. -- PMM ^ permalink raw reply [flat|nested] 40+ messages in thread
* [Qemu-devel] [PULL 00/11] Block patches @ 2017-01-16 13:39 Stefan Hajnoczi 2017-01-17 13:53 ` Peter Maydell 0 siblings, 1 reply; 40+ messages in thread From: Stefan Hajnoczi @ 2017-01-16 13:39 UTC (permalink / raw) To: qemu-devel; +Cc: Peter Maydell, Stefan Hajnoczi The following changes since commit 2ccede18bd24fce5db83fef3674563a1f256717b: Merge remote-tracking branch 'remotes/vivier/tags/m68k-for-2.9-pull-request' into staging (2017-01-16 12:41:35 +0000) are available in the git repository at: git://github.com/stefanha/qemu.git tags/block-pull-request for you to fetch changes up to 7d506c90afa47facdb993bc19c15863eef584f1d: async: optimize aio_bh_poll (2017-01-16 13:25:18 +0000) ---------------------------------------------------------------- ---------------------------------------------------------------- Paolo Bonzini (11): block: get rid of bdrv_io_unplugged_begin/end aio: rename bh_lock to list_lock qemu-thread: introduce QemuLockCnt aio: make ctx->list_lock a QemuLockCnt, subsuming ctx->walking_bh qemu-thread: optimize QemuLockCnt with futexes on Linux aio-posix: split aio_dispatch_handlers out of aio_dispatch aio: tweak walking in dispatch phase aio-posix: remove walking_handlers, protecting AioHandler list with list_lock aio-win32: remove walking_handlers, protecting AioHandler list with list_lock aio: document locking async: optimize aio_bh_poll docs/lockcnt.txt | 277 +++++++++++++++++++++++++++++++ docs/multiple-iothreads.txt | 13 +- util/Makefile.objs | 1 + include/block/aio.h | 38 ++--- include/block/block.h | 2 - include/block/block_int.h | 3 +- include/qemu/futex.h | 36 ++++ include/qemu/thread.h | 112 +++++++++++++ aio-posix.c | 118 +++++++------ aio-win32.c | 83 +++++---- async.c | 45 ++--- block/io.c | 41 +---- util/lockcnt.c | 397 ++++++++++++++++++++++++++++++++++++++++++++ util/qemu-thread-posix.c | 35 +--- util/qemu-thread-win32.c | 2 +- util/trace-events | 10 ++ 16 files changed, 1010 insertions(+), 203 deletions(-) create mode 100644 docs/lockcnt.txt create mode 100644 include/qemu/futex.h create mode 100644 util/lockcnt.c -- 2.9.3 ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PULL 00/11] Block patches 2017-01-16 13:39 Stefan Hajnoczi @ 2017-01-17 13:53 ` Peter Maydell 0 siblings, 0 replies; 40+ messages in thread From: Peter Maydell @ 2017-01-17 13:53 UTC (permalink / raw) To: Stefan Hajnoczi; +Cc: QEMU Developers On 16 January 2017 at 13:39, Stefan Hajnoczi <stefanha@redhat.com> wrote: > The following changes since commit 2ccede18bd24fce5db83fef3674563a1f256717b: > > Merge remote-tracking branch 'remotes/vivier/tags/m68k-for-2.9-pull-request' into staging (2017-01-16 12:41:35 +0000) > > are available in the git repository at: > > git://github.com/stefanha/qemu.git tags/block-pull-request > > for you to fetch changes up to 7d506c90afa47facdb993bc19c15863eef584f1d: > > async: optimize aio_bh_poll (2017-01-16 13:25:18 +0000) > > ---------------------------------------------------------------- > > ---------------------------------------------------------------- Applied, thanks. -- PMM ^ permalink raw reply [flat|nested] 40+ messages in thread
* [Qemu-devel] [PULL 00/11] Block patches @ 2018-06-04 11:20 Stefan Hajnoczi 2018-06-05 9:38 ` Peter Maydell 0 siblings, 1 reply; 40+ messages in thread From: Stefan Hajnoczi @ 2018-06-04 11:20 UTC (permalink / raw) To: qemu-devel Cc: Ronnie Sahlberg, Peter Maydell, qemu-block, Peter Lieven, Max Reitz, Paolo Bonzini, Kevin Wolf, Fam Zheng, Stefan Hajnoczi The following changes since commit c25e8bba1f546ea72744ccfab77f8a9e8a323be8: Merge remote-tracking branch 'remotes/otubo/tags/pull-seccomp-20180601' into staging (2018-06-01 13:11:30 +0100) are available in the Git repository at: git://github.com/stefanha/qemu.git tags/block-pull-request for you to fetch changes up to 21891a5a3011608845b5d7f1f9cce60cdc2bcc62: main-loop: drop spin_counter (2018-06-01 16:01:29 +0100) ---------------------------------------------------------------- Pull request * Copy offloading for qemu-img convert (iSCSI, raw, and qcow2) If the underlying storage supports copy offloading, qemu-img convert will use it instead of performing reads and writes. This avoids data transfers and thus frees up storage bandwidth for other purposes. SCSI EXTENDED COPY and Linux copy_file_range(2) are used to implement this optimization. * Drop spurious "WARNING: I\/O thread spun for 1000 iterations" warning ---------------------------------------------------------------- Fam Zheng (10): block: Introduce API for copy offloading raw: Check byte range uniformly raw: Implement copy offloading qcow2: Implement copy offloading file-posix: Implement bdrv_co_copy_range iscsi: Query and save device designator when opening iscsi: Create and use iscsi_co_wait_for_task iscsi: Implement copy offloading block-backend: Add blk_co_copy_range qemu-img: Convert with copy offloading Stefan Hajnoczi (1): main-loop: drop spin_counter configure | 17 ++ include/block/block.h | 32 ++++ include/block/block_int.h | 38 ++++ include/block/raw-aio.h | 10 +- include/scsi/constants.h | 4 + include/sysemu/block-backend.h | 4 + block/block-backend.c | 18 ++ block/file-posix.c | 98 +++++++++- block/io.c | 97 ++++++++++ block/iscsi.c | 314 +++++++++++++++++++++++++++---- block/qcow2.c | 229 +++++++++++++++++++--- block/raw-format.c | 96 +++++++--- qemu-img.c | 50 ++++- util/main-loop.c | 25 --- tests/qemu-iotests/common.filter | 1 - 15 files changed, 908 insertions(+), 125 deletions(-) -- 2.17.1 ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PULL 00/11] Block patches 2018-06-04 11:20 Stefan Hajnoczi @ 2018-06-05 9:38 ` Peter Maydell 0 siblings, 0 replies; 40+ messages in thread From: Peter Maydell @ 2018-06-05 9:38 UTC (permalink / raw) To: Stefan Hajnoczi Cc: QEMU Developers, Ronnie Sahlberg, Qemu-block, Peter Lieven, Max Reitz, Paolo Bonzini, Kevin Wolf, Fam Zheng On 4 June 2018 at 12:20, Stefan Hajnoczi <stefanha@redhat.com> wrote: > The following changes since commit c25e8bba1f546ea72744ccfab77f8a9e8a323be8: > > Merge remote-tracking branch 'remotes/otubo/tags/pull-seccomp-20180601' into staging (2018-06-01 13:11:30 +0100) > > are available in the Git repository at: > > git://github.com/stefanha/qemu.git tags/block-pull-request > > for you to fetch changes up to 21891a5a3011608845b5d7f1f9cce60cdc2bcc62: > > main-loop: drop spin_counter (2018-06-01 16:01:29 +0100) > > ---------------------------------------------------------------- > Pull request > > * Copy offloading for qemu-img convert (iSCSI, raw, and qcow2) > > If the underlying storage supports copy offloading, qemu-img convert will > use it instead of performing reads and writes. This avoids data transfers > and thus frees up storage bandwidth for other purposes. SCSI EXTENDED COPY > and Linux copy_file_range(2) are used to implement this optimization. > > * Drop spurious "WARNING: I\/O thread spun for 1000 iterations" warning > > ---------------------------------------------------------------- Applied, thanks. -- PMM ^ permalink raw reply [flat|nested] 40+ messages in thread
* [Qemu-devel] [PULL 00/11] Block patches @ 2018-08-31 14:24 Max Reitz 2018-08-31 14:27 ` Max Reitz 0 siblings, 1 reply; 40+ messages in thread From: Max Reitz @ 2018-08-31 14:24 UTC (permalink / raw) To: qemu-block; +Cc: qemu-devel, Max Reitz, Peter Maydell, Kevin Wolf The following changes since commit 19b599f7664b2ebfd0f405fb79c14dd241557452: Merge remote-tracking branch 'remotes/armbru/tags/pull-error-2018-08-27-v2' into staging (2018-08-27 16:44:20 +0100) are available in the Git repository at: https://git.xanclic.moe/XanClic/qemu.git tags/pull-block-2018-08-31 for you to fetch changes up to 40954cc7831c4f95f9ce6402ae3d6761f44f31ff: jobs: remove job_defer_to_main_loop (2018-08-31 16:11:27 +0200) ---------------------------------------------------------------- Block patches: - (Block) job exit refactoring, part 1 (removing job_defer_to_main_loop()) - Locking fix for the file-posix block driver - test-bdrv-drain leak fix ---------------------------------------------------------------- Fam Zheng (1): file-posix: Skip effectiveless OFD lock operations John Snow (9): jobs: change start callback to run callback jobs: canonize Error object jobs: add exit shim block/commit: utilize job_exit shim block/mirror: utilize job_exit shim jobs: utilize job_exit shim block/backup: make function variables consistently named jobs: remove ret argument to job_completed; privatize it jobs: remove job_defer_to_main_loop Marc-André Lureau (1): tests: fix bdrv-drain leak include/qemu/job.h | 70 ++++++++++++++++----------------- block/backup.c | 81 ++++++++++++++++----------------------- block/commit.c | 29 +++++--------- block/create.c | 19 +++------ block/file-posix.c | 41 +++++++++++++++----- block/mirror.c | 39 ++++++++----------- block/stream.c | 29 ++++++-------- job-qmp.c | 5 ++- job.c | 73 ++++++++++++----------------------- tests/test-bdrv-drain.c | 14 +++---- tests/test-blockjob-txn.c | 25 +++++------- tests/test-blockjob.c | 17 ++++---- trace-events | 2 +- 13 files changed, 192 insertions(+), 252 deletions(-) -- 2.17.1 ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PULL 00/11] Block patches 2018-08-31 14:24 Max Reitz @ 2018-08-31 14:27 ` Max Reitz 0 siblings, 0 replies; 40+ messages in thread From: Max Reitz @ 2018-08-31 14:27 UTC (permalink / raw) To: qemu-block; +Cc: qemu-devel, Peter Maydell, Kevin Wolf [-- Attachment #1: Type: text/plain, Size: 961 bytes --] On 2018-08-31 16:24, Max Reitz wrote: > The following changes since commit 19b599f7664b2ebfd0f405fb79c14dd241557452: > > Merge remote-tracking branch 'remotes/armbru/tags/pull-error-2018-08-27-v2' into staging (2018-08-27 16:44:20 +0100) > > are available in the Git repository at: > > https://git.xanclic.moe/XanClic/qemu.git tags/pull-block-2018-08-31 > > for you to fetch changes up to 40954cc7831c4f95f9ce6402ae3d6761f44f31ff: > > jobs: remove job_defer_to_main_loop (2018-08-31 16:11:27 +0200) > > ---------------------------------------------------------------- > Block patches: > - (Block) job exit refactoring, part 1 > (removing job_defer_to_main_loop()) > - Locking fix for the file-posix block driver > - test-bdrv-drain leak fix > > ---------------------------------------------------------------- Self-NACK. Sorry, I don't quite know how the locking fix slipped in there, but it shouldn't be here. Max [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 40+ messages in thread
* [Qemu-devel] [PULL 00/11] Block patches @ 2019-05-07 15:18 Max Reitz 2019-05-09 8:49 ` Peter Maydell 0 siblings, 1 reply; 40+ messages in thread From: Max Reitz @ 2019-05-07 15:18 UTC (permalink / raw) To: qemu-block; +Cc: Kevin Wolf, Peter Maydell, qemu-devel, Max Reitz The following changes since commit 19eb2d4e736dc895f31fbd6b520e514f10cc08e0: Merge remote-tracking branch 'remotes/thibault/tags/samuel-thibault' into staging (2019-05-07 10:43:32 +0100) are available in the Git repository at: https://git.xanclic.moe/XanClic/qemu.git tags/pull-block-2019-05-07 for you to fetch changes up to 1278dce7927301bf3d004a40061dbd2c1e0846a8: iotests: Fix iotests 110 and 126 (2019-05-07 17:14:21 +0200) ---------------------------------------------------------------- Block patches: - Fixes to qcow2's implementation of qemu-img check - Our SSH driver now supports bdrv_refresh_filename() - Miscellaneous fixes ---------------------------------------------------------------- Alberto Garcia (2): block: Assert that drv->bdrv_child_perm is set in bdrv_child_perm() commit: Use bdrv_append() in commit_start() Andrey Shinkevich (1): qcow2: discard bitmap when removed Max Reitz (3): block/ssh: Implement .bdrv_refresh_filename() block/ssh: Implement .bdrv_dirname() iotests: Fix iotests 110 and 126 Vladimir Sementsov-Ogievskiy (5): qcow2-refcount: fix check_oflag_copied qcow2-refcount: avoid eating RAM qcow2-refcount: check_refcounts_l2: reduce ignored overlaps qcow2-refcount: check_refcounts_l2: don't count fixed cluster as allocated qcow2-refcount: don't mask corruptions under internal errors block.c | 9 ++-- block/commit.c | 11 +---- block/qcow2-bitmap.c | 2 +- block/qcow2-refcount.c | 80 ++++++++++++++++++++++------------- block/ssh.c | 73 +++++++++++++++++++++++++++++--- tests/qemu-iotests/110 | 10 +++-- tests/qemu-iotests/126 | 10 +++-- tests/qemu-iotests/138 | 12 +++--- tests/qemu-iotests/138.out | 5 ++- tests/qemu-iotests/207 | 10 ++--- tests/qemu-iotests/207.out | 10 ++--- tests/qemu-iotests/common.rc | 2 +- tests/qemu-iotests/iotests.py | 2 +- 13 files changed, 159 insertions(+), 77 deletions(-) -- 2.20.1 ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PULL 00/11] Block patches 2019-05-07 15:18 Max Reitz @ 2019-05-09 8:49 ` Peter Maydell 2019-05-09 13:27 ` Max Reitz 0 siblings, 1 reply; 40+ messages in thread From: Peter Maydell @ 2019-05-09 8:49 UTC (permalink / raw) To: Max Reitz; +Cc: Kevin Wolf, QEMU Developers, Qemu-block On Tue, 7 May 2019 at 16:18, Max Reitz <mreitz@redhat.com> wrote: > > The following changes since commit 19eb2d4e736dc895f31fbd6b520e514f10cc08e0: > > Merge remote-tracking branch 'remotes/thibault/tags/samuel-thibault' into staging (2019-05-07 10:43:32 +0100) > > are available in the Git repository at: > > https://git.xanclic.moe/XanClic/qemu.git tags/pull-block-2019-05-07 > > for you to fetch changes up to 1278dce7927301bf3d004a40061dbd2c1e0846a8: > > iotests: Fix iotests 110 and 126 (2019-05-07 17:14:21 +0200) Attempting to fetch from this remote hangs: $ git fetch -v xanclic POST git-upload-pack (gzip 1798 to 966 bytes) POST git-upload-pack (gzip 1798 to 965 bytes) POST git-upload-pack (gzip 2648 to 1393 bytes) POST git-upload-pack (gzip 4248 to 2201 bytes) POST git-upload-pack (gzip 7498 to 3833 bytes) POST git-upload-pack (gzip 13998 to 7092 bytes) POST git-upload-pack (gzip 27648 to 13930 bytes) POST git-upload-pack (gzip 55148 to 27782 bytes) POST git-upload-pack (gzip 108948 to 54371 bytes) POST git-upload-pack (gzip 215798 to 107233 bytes) [no further output] thanks -- PMM ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PULL 00/11] Block patches 2019-05-09 8:49 ` Peter Maydell @ 2019-05-09 13:27 ` Max Reitz 2019-05-09 16:17 ` Peter Maydell 0 siblings, 1 reply; 40+ messages in thread From: Max Reitz @ 2019-05-09 13:27 UTC (permalink / raw) To: Peter Maydell; +Cc: Kevin Wolf, QEMU Developers, Qemu-block [-- Attachment #1: Type: text/plain, Size: 1441 bytes --] On 09.05.19 10:49, Peter Maydell wrote: > On Tue, 7 May 2019 at 16:18, Max Reitz <mreitz@redhat.com> wrote: >> >> The following changes since commit 19eb2d4e736dc895f31fbd6b520e514f10cc08e0: >> >> Merge remote-tracking branch 'remotes/thibault/tags/samuel-thibault' into staging (2019-05-07 10:43:32 +0100) >> >> are available in the Git repository at: >> >> https://git.xanclic.moe/XanClic/qemu.git tags/pull-block-2019-05-07 >> >> for you to fetch changes up to 1278dce7927301bf3d004a40061dbd2c1e0846a8: >> >> iotests: Fix iotests 110 and 126 (2019-05-07 17:14:21 +0200) > > Attempting to fetch from this remote hangs: > > $ git fetch -v xanclic > POST git-upload-pack (gzip 1798 to 966 bytes) > POST git-upload-pack (gzip 1798 to 965 bytes) > POST git-upload-pack (gzip 2648 to 1393 bytes) > POST git-upload-pack (gzip 4248 to 2201 bytes) > POST git-upload-pack (gzip 7498 to 3833 bytes) > POST git-upload-pack (gzip 13998 to 7092 bytes) > POST git-upload-pack (gzip 27648 to 13930 bytes) > POST git-upload-pack (gzip 55148 to 27782 bytes) > POST git-upload-pack (gzip 108948 to 54371 bytes) > POST git-upload-pack (gzip 215798 to 107233 bytes) > [no further output] Hm, that's unfortunate. It works for me. (At least now.) I've pushed the tag to Github: https://github.com/XanClic/qemu.git tags/pull-block-2019-05-07 I hope that works better. Sorry for the inconvenience, Max [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [Qemu-devel] [PULL 00/11] Block patches 2019-05-09 13:27 ` Max Reitz @ 2019-05-09 16:17 ` Peter Maydell 0 siblings, 0 replies; 40+ messages in thread From: Peter Maydell @ 2019-05-09 16:17 UTC (permalink / raw) To: Max Reitz; +Cc: Kevin Wolf, QEMU Developers, Qemu-block On Thu, 9 May 2019 at 14:27, Max Reitz <mreitz@redhat.com> wrote: > > On 09.05.19 10:49, Peter Maydell wrote: > > On Tue, 7 May 2019 at 16:18, Max Reitz <mreitz@redhat.com> wrote: > >> > >> The following changes since commit 19eb2d4e736dc895f31fbd6b520e514f10cc08e0: > >> > >> Merge remote-tracking branch 'remotes/thibault/tags/samuel-thibault' into staging (2019-05-07 10:43:32 +0100) > >> > >> are available in the Git repository at: > >> > >> https://git.xanclic.moe/XanClic/qemu.git tags/pull-block-2019-05-07 > >> > >> for you to fetch changes up to 1278dce7927301bf3d004a40061dbd2c1e0846a8: > >> > >> iotests: Fix iotests 110 and 126 (2019-05-07 17:14:21 +0200) > > > > Attempting to fetch from this remote hangs: > > > > $ git fetch -v xanclic > > POST git-upload-pack (gzip 1798 to 966 bytes) > > POST git-upload-pack (gzip 1798 to 965 bytes) > > POST git-upload-pack (gzip 2648 to 1393 bytes) > > POST git-upload-pack (gzip 4248 to 2201 bytes) > > POST git-upload-pack (gzip 7498 to 3833 bytes) > > POST git-upload-pack (gzip 13998 to 7092 bytes) > > POST git-upload-pack (gzip 27648 to 13930 bytes) > > POST git-upload-pack (gzip 55148 to 27782 bytes) > > POST git-upload-pack (gzip 108948 to 54371 bytes) > > POST git-upload-pack (gzip 215798 to 107233 bytes) > > [no further output] > > Hm, that's unfortunate. It works for me. (At least now.) > > I've pushed the tag to Github: > > https://github.com/XanClic/qemu.git tags/pull-block-2019-05-07 > > I hope that works better. Yep, that worked fine: I've applied that. Please update the changelog at https://wiki.qemu.org/ChangeLog/4.1 for any user-visible changes. (Strace says that we seem to successfully connect to the git.xanclic.moe server and do some talking to it, but the first time the client issues a "fetch" command the server never replies and the client is just blocked in read().) thanks -- PMM ^ permalink raw reply [flat|nested] 40+ messages in thread
end of thread, other threads:[~2019-05-09 16:18 UTC | newest] Thread overview: 40+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2010-05-07 15:13 [Qemu-devel] [PULL 00/11] Block patches Kevin Wolf 2010-05-07 15:13 ` [Qemu-devel] [PATCH 01/11] block: Remove semicolon in BDRV_SECTOR_MASK macro Kevin Wolf 2010-05-07 15:13 ` [Qemu-devel] [PATCH 02/11] qemu-nbd: Improve error reporting Kevin Wolf 2010-05-07 15:13 ` [Qemu-devel] [PATCH 03/11] cloop: use pread Kevin Wolf 2010-05-07 15:14 ` [Qemu-devel] [PATCH 04/11] cloop: use qemu block API Kevin Wolf 2010-05-07 15:14 ` [Qemu-devel] [PATCH 05/11] ide: Fix ide_dma_cancel Kevin Wolf 2010-05-07 15:14 ` [Qemu-devel] [PATCH 06/11] bochs: use pread Kevin Wolf 2010-05-07 15:14 ` [Qemu-devel] [PATCH 07/11] bochs: use qemu block API Kevin Wolf 2010-05-07 15:14 ` [Qemu-devel] [PATCH 08/11] block: Avoid unchecked casts for AIOCBs Kevin Wolf 2010-05-07 15:14 ` [Qemu-devel] [PATCH 09/11] block: Fix protocol detection for Windows devices Kevin Wolf 2010-05-07 15:14 ` [Qemu-devel] [PATCH 10/11] block: Fix bdrv_commit Kevin Wolf 2010-05-07 15:14 ` [Qemu-devel] [PATCH 11/11] block/vdi: Allow disk images of size 0 Kevin Wolf 2010-10-22 13:43 [Qemu-devel] [PULL 00/11] Block patches Kevin Wolf 2011-04-27 13:42 Kevin Wolf 2011-04-27 14:26 ` Aurelien Jarno 2012-08-10 16:47 Kevin Wolf 2012-08-12 18:14 ` Anthony Liguori 2012-09-14 12:39 Kevin Wolf 2012-09-17 18:19 ` Anthony Liguori 2012-09-18 17:49 ` Michael Tokarev 2012-09-19 8:42 ` Kevin Wolf 2013-04-15 8:22 Stefan Hajnoczi 2013-04-26 11:44 Stefan Hajnoczi 2013-05-24 14:32 Stefan Hajnoczi 2013-06-17 21:18 ` Anthony Liguori 2013-09-20 17:42 Stefan Hajnoczi 2014-02-14 17:29 Stefan Hajnoczi 2014-02-15 16:37 ` Peter Maydell 2014-09-26 18:58 Kevin Wolf 2014-09-29 13:03 ` Peter Maydell 2017-01-16 13:39 Stefan Hajnoczi 2017-01-17 13:53 ` Peter Maydell 2018-06-04 11:20 Stefan Hajnoczi 2018-06-05 9:38 ` Peter Maydell 2018-08-31 14:24 Max Reitz 2018-08-31 14:27 ` Max Reitz 2019-05-07 15:18 Max Reitz 2019-05-09 8:49 ` Peter Maydell 2019-05-09 13:27 ` Max Reitz 2019-05-09 16:17 ` Peter Maydell
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.