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 ---