Re: [PATCH 2/2] romfs: remove an redundant if condition inromfs_readpage

From: Andrew Morton
Date: Mon Dec 16 2013 - 03:08:58 EST


On Tue, 26 Nov 2013 16:39:09 +0800 Rui Xiang <rui.xiang@xxxxxxxxxx> wrote:

> Here ret always equals 0, so SetPageUptodate directly.
>
> ...
>
> --- a/fs/romfs/super.c
> +++ b/fs/romfs/super.c
> @@ -129,8 +129,7 @@ static int romfs_readpage(struct file *file, struct page *page)
>
> if (fillsize < PAGE_SIZE)
> memset(buf + fillsize, 0, PAGE_SIZE - fillsize);
> - if (ret == 0)
> - SetPageUptodate(page);
> + SetPageUptodate(page);
>
> flush_dcache_page(page);
> kunmap(page);

Nope, `ret' can be -EIO:

ret = 0;
if (offset < size) {
size -= offset;
fillsize = size > PAGE_SIZE ? PAGE_SIZE : size;

pos = ROMFS_I(inode)->i_dataoffset + offset;

ret = romfs_dev_read(inode->i_sb, pos, buf, fillsize);
if (ret < 0) {
SetPageError(page);
fillsize = 0;
-->> ret = -EIO;
}
}

if (fillsize < PAGE_SIZE)
memset(buf + fillsize, 0, PAGE_SIZE - fillsize);
if (ret == 0)
SetPageUptodate(page);


It was a bit rude to overwrite the romfs_dev_read() return code though.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/