From 2adb43e792bbd8d2cccf0773672f25bd5f4a0613 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Thu, 26 Nov 2020 00:46:27 +0100 Subject: storeio: Translate short reads to EIO * storeio/dev.c (dev_buf_fill): When store returns less bytes than the block size, assume an EIO. --- storeio/dev.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/storeio/dev.c b/storeio/dev.c index 8bdfa111..c229f37b 100644 --- a/storeio/dev.c +++ b/storeio/dev.c @@ -87,6 +87,14 @@ dev_buf_fill (struct dev *dev, off_t offs) if (err) return err; + if (buf_len < store->block_size) + { + /* Short read, translate this to EIO */ + if (buf != dev->buf) + munmap (buf, buf_len); + return EIO; + } + if (buf != dev->buf) { munmap (dev->buf, store->block_size); -- cgit v1.2.3