diff options
Diffstat (limited to 'blockdev/linux/file_dev.c')
| -rw-r--r-- | blockdev/linux/file_dev.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/blockdev/linux/file_dev.c b/blockdev/linux/file_dev.c index 4e4cc67..77c6112 100644 --- a/blockdev/linux/file_dev.c +++ b/blockdev/linux/file_dev.c @@ -77,6 +77,7 @@ static int file_dev_open(struct ext4_blockdev *bdev) if (dev_file < 0) { printf("open of %s failed %d\n", fname, errno); + ext4_blockdev_errno = errno; return EIO; } @@ -119,12 +120,14 @@ static int file_dev_bread(struct ext4_blockdev *bdev, void *buf, uint64_t blk_id uint32_t blk_cnt) { if (lseek(dev_file, blk_id * bdev->bdif->ph_bsize, SEEK_SET) < 0) { + ext4_blockdev_errno = errno; printf("lseek failed %d\n", errno); return EIO; } if (!blk_cnt) return EOK; if (read(dev_file, buf, bdev->bdif->ph_bsize * blk_cnt) < 0) { + ext4_blockdev_errno = errno; printf("read failed %d\n", errno); return EIO; } @@ -150,12 +153,14 @@ static int file_dev_bwrite(struct ext4_blockdev *bdev, const void *buf, uint64_t blk_id, uint32_t blk_cnt) { if (lseek(dev_file, blk_id * bdev->bdif->ph_bsize, SEEK_SET) < 0) { + ext4_blockdev_errno = errno; printf("fseeko failed %d\n", errno); return EIO; } if (!blk_cnt) return EOK; if (write(dev_file, buf, bdev->bdif->ph_bsize * blk_cnt) < 0) { + ext4_blockdev_errno = errno; printf("write failed %d\n", errno); return EIO; } |
