[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/7] vnvram: VNVRAM bdrv support
From: |
Kevin Wolf |
Subject: |
Re: [Qemu-devel] [PATCH 1/7] vnvram: VNVRAM bdrv support |
Date: |
Fri, 24 May 2013 15:06:22 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
Am 23.05.2013 um 19:44 hat Corey Bryant geschrieben:
> Provides low-level VNVRAM functionality that reads and writes data,
> such as an entry's binary blob, to a drive image using the block
> driver.
>
> Signed-off-by: Corey Bryant <address@hidden>
> +/*
> + * Increase the drive size if it's too small to fit the VNVRAM data
> + */
> +static int vnvram_drv_adjust_size(VNVRAM *vnvram)
> +{
> + int rc = 0;
> + int64_t needed_size;
> +
> + needed_size = 0;
> +
> + if (bdrv_getlength(vnvram->bds) < needed_size) {
> + rc = bdrv_truncate(vnvram->bds, needed_size);
> + if (rc != 0) {
> + DPRINTF("%s: VNVRAM drive too small\n", __func__);
> + }
> + }
> +
> + return rc;
> +}
This function doesn't make a whole lot of sense. It truncates the file
to size 0 if and only if bdrv_getlength() returns an error.
> +
> +/*
> + * Write a header to the drive with entry count of zero
> + */
> +static int vnvram_drv_hdr_create_empty(VNVRAM *vnvram)
> +{
> + VNVRAMDrvHdr hdr;
> +
> + hdr.version = VNVRAM_CURRENT_VERSION;
> + hdr.magic = VNVRAM_MAGIC;
> + hdr.num_entries = 0;
> +
> + vnvram_drv_hdr_cpu_to_be((&hdr));
> +
> + if (bdrv_pwrite(vnvram->bds, 0, (&hdr), sizeof(hdr)) != sizeof(hdr)) {
> + DPRINTF("%s: Write of header to drive failed\n", __func__);
> + return -EIO;
> + }
> +
> + vnvram->end_offset = sizeof(VNVRAMDrvHdr);
> +
> + return 0;
> +}
> +
> +/*
> + * Read the header from the drive
> + */
> +static int vnvram_drv_hdr_read(VNVRAM *vnvram, VNVRAMDrvHdr *hdr)
> +{
> + if (bdrv_pread(vnvram->bds, 0, hdr, sizeof(*hdr)) != sizeof(*hdr)) {
> + DPRINTF("%s: Read of header from drive failed\n", __func__);
> + return -EIO;
> + }
Why do you turn all errors into -EIO instead of returning the real error
code? (More instances of the same thing follow)
> +
> + vnvram_drv_hdr_be_to_cpu(hdr);
> +
> + return 0;
> +}
> +}
Kevin
- [Qemu-devel] [PATCH 0/7] VNVRAM persistent storage, Corey Bryant, 2013/05/23
- [Qemu-devel] [PATCH 2/7] vnvram: VNVRAM in-memory support, Corey Bryant, 2013/05/23
- [Qemu-devel] [PATCH 3/7] vnvram: VNVRAM bottom-half r/w scheduling support, Corey Bryant, 2013/05/23
- [Qemu-devel] [PATCH 5/7] vnvram: VNVRAM additional debug support, Corey Bryant, 2013/05/23
- [Qemu-devel] [PATCH 4/7] vnvram: VNVRAM internal APIs, Corey Bryant, 2013/05/23
- [Qemu-devel] [PATCH 6/7] main: Initialize VNVRAM, Corey Bryant, 2013/05/23
- [Qemu-devel] [PATCH 7/7] monitor: QMP/HMP support for retrieving VNVRAM details, Corey Bryant, 2013/05/23
- [Qemu-devel] [PATCH 1/7] vnvram: VNVRAM bdrv support, Corey Bryant, 2013/05/23
- Re: [Qemu-devel] [PATCH 1/7] vnvram: VNVRAM bdrv support,
Kevin Wolf <=
Re: [Qemu-devel] [PATCH 0/7] VNVRAM persistent storage, Anthony Liguori, 2013/05/23
Re: [Qemu-devel] [PATCH 0/7] VNVRAM persistent storage, Stefan Hajnoczi, 2013/05/24