Currently, ubifs_readpage only returns 0 even if ubifs_bulk_read() fails. Like the other file systems, the error value should be propagated further instead of 0.
Another check that is missing is ENOMEM for kmalloc. Signed-off-by: Sanidhya Kashyap <sanidhya.gat...@gmail.com> --- fs/ubifs/file.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/fs/ubifs/file.c b/fs/ubifs/file.c index e627c0a..28fe892 100644 --- a/fs/ubifs/file.c +++ b/fs/ubifs/file.c @@ -863,8 +863,10 @@ static int ubifs_bulk_read(struct page *page) bu = &c->bu; else { bu = kmalloc(sizeof(struct bu_info), GFP_NOFS | __GFP_NOWARN); - if (!bu) + if (!bu) { + err = -ENOMEM; goto out_unlock; + } bu->buf = NULL; allocated = 1; @@ -887,11 +889,14 @@ out_unlock: static int ubifs_readpage(struct file *file, struct page *page) { - if (ubifs_bulk_read(page)) - return 0; + int err = 0; + + err = ubifs_bulk_read(page); + if (err) + return err; do_readpage(page); unlock_page(page); - return 0; + return err; } static int do_writepage(struct page *page, int len) -- 2.1.0 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/