raw-format.c (fcb7e040f5c69ca1f0678f991ab5354488a9e192) | raw-format.c (c86422c5549c0983b4b4525b8f56a1c69dd67aa1) |
---|---|
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> --- 303 unchanged lines hidden (view full) --- 312 313 ret = raw_adjust_offset(bs, &offset, bytes, true); 314 if (ret) { 315 return ret; 316 } 317 return bdrv_co_pdiscard(bs->file, offset, bytes); 318} 319 | 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> --- 303 unchanged lines hidden (view full) --- 312 313 ret = raw_adjust_offset(bs, &offset, bytes, true); 314 if (ret) { 315 return ret; 316 } 317 return bdrv_co_pdiscard(bs->file, offset, bytes); 318} 319 |
320static int64_t raw_getlength(BlockDriverState *bs) | 320static int64_t coroutine_fn raw_co_getlength(BlockDriverState *bs) |
321{ 322 int64_t len; 323 BDRVRawState *s = bs->opaque; 324 325 /* Update size. It should not change unless the file was externally 326 * modified. */ | 321{ 322 int64_t len; 323 BDRVRawState *s = bs->opaque; 324 325 /* Update size. It should not change unless the file was externally 326 * modified. */ |
327 len = bdrv_getlength(bs->file->bs); | 327 len = bdrv_co_getlength(bs->file->bs); |
328 if (len < 0) { 329 return len; 330 } 331 332 if (len < s->offset) { 333 s->size = 0; 334 } else { 335 if (s->has_size) { --- 281 unchanged lines hidden (view full) --- 617 .bdrv_co_preadv = &raw_co_preadv, 618 .bdrv_co_pwritev = &raw_co_pwritev, 619 .bdrv_co_pwrite_zeroes = &raw_co_pwrite_zeroes, 620 .bdrv_co_pdiscard = &raw_co_pdiscard, 621 .bdrv_co_block_status = &raw_co_block_status, 622 .bdrv_co_copy_range_from = &raw_co_copy_range_from, 623 .bdrv_co_copy_range_to = &raw_co_copy_range_to, 624 .bdrv_co_truncate = &raw_co_truncate, | 328 if (len < 0) { 329 return len; 330 } 331 332 if (len < s->offset) { 333 s->size = 0; 334 } else { 335 if (s->has_size) { --- 281 unchanged lines hidden (view full) --- 617 .bdrv_co_preadv = &raw_co_preadv, 618 .bdrv_co_pwritev = &raw_co_pwritev, 619 .bdrv_co_pwrite_zeroes = &raw_co_pwrite_zeroes, 620 .bdrv_co_pdiscard = &raw_co_pdiscard, 621 .bdrv_co_block_status = &raw_co_block_status, 622 .bdrv_co_copy_range_from = &raw_co_copy_range_from, 623 .bdrv_co_copy_range_to = &raw_co_copy_range_to, 624 .bdrv_co_truncate = &raw_co_truncate, |
625 .bdrv_getlength = &raw_getlength, | 625 .bdrv_co_getlength = &raw_co_getlength, |
626 .is_format = true, 627 .has_variable_length = true, 628 .bdrv_measure = &raw_measure, 629 .bdrv_get_info = &raw_get_info, 630 .bdrv_refresh_limits = &raw_refresh_limits, 631 .bdrv_probe_blocksizes = &raw_probe_blocksizes, 632 .bdrv_probe_geometry = &raw_probe_geometry, 633 .bdrv_eject = &raw_eject, --- 15 unchanged lines hidden --- | 626 .is_format = true, 627 .has_variable_length = true, 628 .bdrv_measure = &raw_measure, 629 .bdrv_get_info = &raw_get_info, 630 .bdrv_refresh_limits = &raw_refresh_limits, 631 .bdrv_probe_blocksizes = &raw_probe_blocksizes, 632 .bdrv_probe_geometry = &raw_probe_geometry, 633 .bdrv_eject = &raw_eject, --- 15 unchanged lines hidden --- |