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@xxxxxxxxxxxxxxx> #v2.6.27 Signed-off-by: wangfangpeng <wangfangpeng1@xxxxxxxxxx> --- fs/ubifs/file.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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) -- 2.12.3