diff options
| author | Carl Hetherington <cth@carlh.net> | 2022-12-29 23:37:32 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2023-01-30 20:52:20 +0100 |
| commit | b98f55b806f9dfe9e9374faceed99b689c29f28e (patch) | |
| tree | 5c626761e0814ae7b9434a5fc66b1e2100743893 /blockdev/linux | |
| parent | 3dc752da8948564456ce2d721c266b4e1a50e7a1 (diff) | |
Return platform-specific errors via ext4_blockdev_errno2400-ext-errors
Diffstat (limited to 'blockdev/linux')
| -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; } |
