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(-)
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)