diff mbox series

ubifs: fix read fail but return ok

Message ID 20210331062723.2090-1-wangfangpeng1@huawei.com
State New
Headers show
Series ubifs: fix read fail but return ok | expand

Commit Message

wangfangpeng March 31, 2021, 6:27 a.m. UTC
do_readpage() may return err, but ubifs_readpage() always return ok.
The vfs will ignore the err happen in ubifs.

Fixes: 1e51764a3c2ac05a2 ("UBIFS: add new flash file system")
Cc: <stable@vger.kernel.org> #v2.6.27
Signed-off-by: wangfangpeng <wangfangpeng1@huawei.com>
---
 fs/ubifs/file.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

Comments

Richard Weinberger April 7, 2021, 10:11 p.m. UTC | #1
On Wed, Mar 31, 2021 at 8:29 AM wangfangpeng <wangfangpeng1@huawei.com> wrote:
> do_readpage() may return err, but ubifs_readpage() always return ok.

> The vfs will ignore the err happen in ubifs.


Are you sure about that?
In case of an error UBIFS sets the error flag of the page and does not
mark it as uptodate,
so vfs will emit -EIO. At least this is the theory. :-)

-- 
Thanks,
//richard
diff mbox series

Patch

diff --git a/fs/ubifs/file.c b/fs/ubifs/file.c
index 0e4b4be3aa26..001feec1d415 100644
--- a/fs/ubifs/file.c
+++ b/fs/ubifs/file.c
@@ -892,11 +892,13 @@  static int ubifs_bulk_read(struct page *page)
 
 static int ubifs_readpage(struct file *file, struct page *page)
 {
+	int ret;
+
 	if (ubifs_bulk_read(page))
 		return 0;
-	do_readpage(page);
+	ret = do_readpage(page);
 	unlock_page(page);
-	return 0;
+	return ret;
 }
 
 static int do_writepage(struct page *page, int len)