raw-format.c (0d514fa23402ab7b4f1c965e0631d953bbe4d3b7) | raw-format.c (061ca8a368165fae300748c17971824a089f521f) |
---|---|
1/* BlockDriver implementation for "raw" format driver 2 * 3 * Copyright (C) 2010-2016 Red Hat, Inc. 4 * Copyright (C) 2010, Blue Swirl <blauwirbel@gmail.com> 5 * Copyright (C) 2009, Anthony Liguori <aliguori@us.ibm.com> 6 * 7 * Author: 8 * Laszlo Ersek <lersek@redhat.com> --- 352 unchanged lines hidden (view full) --- 361 if (bs->probed) { 362 /* To make it easier to protect the first sector, any probed 363 * image is restricted to read-modify-write on sub-sector 364 * operations. */ 365 bs->bl.request_alignment = BDRV_SECTOR_SIZE; 366 } 367} 368 | 1/* BlockDriver implementation for "raw" format driver 2 * 3 * Copyright (C) 2010-2016 Red Hat, Inc. 4 * Copyright (C) 2010, Blue Swirl <blauwirbel@gmail.com> 5 * Copyright (C) 2009, Anthony Liguori <aliguori@us.ibm.com> 6 * 7 * Author: 8 * Laszlo Ersek <lersek@redhat.com> --- 352 unchanged lines hidden (view full) --- 361 if (bs->probed) { 362 /* To make it easier to protect the first sector, any probed 363 * image is restricted to read-modify-write on sub-sector 364 * operations. */ 365 bs->bl.request_alignment = BDRV_SECTOR_SIZE; 366 } 367} 368 |
369static int raw_truncate(BlockDriverState *bs, int64_t offset, 370 PreallocMode prealloc, Error **errp) | 369static int coroutine_fn raw_co_truncate(BlockDriverState *bs, int64_t offset, 370 PreallocMode prealloc, Error **errp) |
371{ 372 BDRVRawState *s = bs->opaque; 373 374 if (s->has_size) { 375 error_setg(errp, "Cannot resize fixed-size raw disks"); 376 return -ENOTSUP; 377 } 378 379 if (INT64_MAX - offset < s->offset) { 380 error_setg(errp, "Disk size too large for the chosen offset"); 381 return -EINVAL; 382 } 383 384 s->size = offset; 385 offset += s->offset; | 371{ 372 BDRVRawState *s = bs->opaque; 373 374 if (s->has_size) { 375 error_setg(errp, "Cannot resize fixed-size raw disks"); 376 return -ENOTSUP; 377 } 378 379 if (INT64_MAX - offset < s->offset) { 380 error_setg(errp, "Disk size too large for the chosen offset"); 381 return -EINVAL; 382 } 383 384 s->size = offset; 385 offset += s->offset; |
386 return bdrv_truncate(bs->file, offset, prealloc, errp); | 386 return bdrv_co_truncate(bs->file, offset, prealloc, errp); |
387} 388 389static void raw_eject(BlockDriverState *bs, bool eject_flag) 390{ 391 bdrv_eject(bs->file->bs, eject_flag); 392} 393 394static void raw_lock_medium(BlockDriverState *bs, bool locked) --- 145 unchanged lines hidden (view full) --- 540 .bdrv_co_create_opts = &raw_co_create_opts, 541 .bdrv_co_preadv = &raw_co_preadv, 542 .bdrv_co_pwritev = &raw_co_pwritev, 543 .bdrv_co_pwrite_zeroes = &raw_co_pwrite_zeroes, 544 .bdrv_co_pdiscard = &raw_co_pdiscard, 545 .bdrv_co_block_status = &raw_co_block_status, 546 .bdrv_co_copy_range_from = &raw_co_copy_range_from, 547 .bdrv_co_copy_range_to = &raw_co_copy_range_to, | 387} 388 389static void raw_eject(BlockDriverState *bs, bool eject_flag) 390{ 391 bdrv_eject(bs->file->bs, eject_flag); 392} 393 394static void raw_lock_medium(BlockDriverState *bs, bool locked) --- 145 unchanged lines hidden (view full) --- 540 .bdrv_co_create_opts = &raw_co_create_opts, 541 .bdrv_co_preadv = &raw_co_preadv, 542 .bdrv_co_pwritev = &raw_co_pwritev, 543 .bdrv_co_pwrite_zeroes = &raw_co_pwrite_zeroes, 544 .bdrv_co_pdiscard = &raw_co_pdiscard, 545 .bdrv_co_block_status = &raw_co_block_status, 546 .bdrv_co_copy_range_from = &raw_co_copy_range_from, 547 .bdrv_co_copy_range_to = &raw_co_copy_range_to, |
548 .bdrv_truncate = &raw_truncate, | 548 .bdrv_co_truncate = &raw_co_truncate, |
549 .bdrv_getlength = &raw_getlength, 550 .has_variable_length = true, 551 .bdrv_measure = &raw_measure, 552 .bdrv_get_info = &raw_get_info, 553 .bdrv_refresh_limits = &raw_refresh_limits, 554 .bdrv_probe_blocksizes = &raw_probe_blocksizes, 555 .bdrv_probe_geometry = &raw_probe_geometry, 556 .bdrv_eject = &raw_eject, --- 12 unchanged lines hidden --- | 549 .bdrv_getlength = &raw_getlength, 550 .has_variable_length = true, 551 .bdrv_measure = &raw_measure, 552 .bdrv_get_info = &raw_get_info, 553 .bdrv_refresh_limits = &raw_refresh_limits, 554 .bdrv_probe_blocksizes = &raw_probe_blocksizes, 555 .bdrv_probe_geometry = &raw_probe_geometry, 556 .bdrv_eject = &raw_eject, --- 12 unchanged lines hidden --- |