Message ID | 20210331062723.2090-1-wangfangpeng1@huawei.com |
---|---|
State | New |
Headers | show |
Series | ubifs: fix read fail but return ok | expand |
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 --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)
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(-)