public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] romfs: fix returm err while getting inode in fill_super
@ 2013-11-26  8:39 Rui Xiang
  2013-11-26  8:39 ` [PATCH 2/2] romfs: remove an redundant if condition in romfs_readpage Rui Xiang
  0 siblings, 1 reply; 4+ messages in thread
From: Rui Xiang @ 2013-11-26  8:39 UTC (permalink / raw)
  To: linux-kernel; +Cc: Rui Xiang

Getting an inode by romfs_iget may lead to an err in fill_super,
and the err value should be return.

And it should return -ENOMEM instead while d_make_root fails,
fix it too.

Signed-off-by: Rui Xiang <rui.xiang@huawei.com>
---
 fs/romfs/super.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/fs/romfs/super.c b/fs/romfs/super.c
index ff1d3d4..d841878 100644
--- a/fs/romfs/super.c
+++ b/fs/romfs/super.c
@@ -533,16 +533,14 @@ static int romfs_fill_super(struct super_block *sb, void *data, int silent)
 
 	root = romfs_iget(sb, pos);
 	if (IS_ERR(root))
-		goto error;
+		return PTR_ERR(root);
 
 	sb->s_root = d_make_root(root);
 	if (!sb->s_root)
-		goto error;
+		return -ENOMEM;
 
 	return 0;
 
-error:
-	return -EINVAL;
 error_rsb_inval:
 	ret = -EINVAL;
 error_rsb:
-- 
1.8.2.2



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/2] romfs: remove an redundant if condition in romfs_readpage
  2013-11-26  8:39 [PATCH 1/2] romfs: fix returm err while getting inode in fill_super Rui Xiang
@ 2013-11-26  8:39 ` Rui Xiang
  2013-12-16  8:10   ` Andrew Morton
  0 siblings, 1 reply; 4+ messages in thread
From: Rui Xiang @ 2013-11-26  8:39 UTC (permalink / raw)
  To: linux-kernel; +Cc: Rui Xiang

Here ret always equals 0, so SetPageUptodate directly.

Signed-off-by: Rui Xiang <rui.xiang@huawei.com>
---
 fs/romfs/super.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/fs/romfs/super.c b/fs/romfs/super.c
index d841878..b5e4ad4 100644
--- 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);
-- 
1.8.2.2



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 2/2] romfs: remove an redundant if condition in romfs_readpage
  2013-11-26  8:39 ` [PATCH 2/2] romfs: remove an redundant if condition in romfs_readpage Rui Xiang
@ 2013-12-16  8:10   ` Andrew Morton
  2013-12-16  8:24     ` Rui Xiang
  0 siblings, 1 reply; 4+ messages in thread
From: Andrew Morton @ 2013-12-16  8:10 UTC (permalink / raw)
  To: Rui Xiang; +Cc: linux-kernel

On Tue, 26 Nov 2013 16:39:09 +0800 Rui Xiang <rui.xiang@huawei.com> 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.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 2/2] romfs: remove an redundant if condition in romfs_readpage
  2013-12-16  8:10   ` Andrew Morton
@ 2013-12-16  8:24     ` Rui Xiang
  0 siblings, 0 replies; 4+ messages in thread
From: Rui Xiang @ 2013-12-16  8:24 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

On 2013/12/16 16:10, Andrew Morton wrote:
> On Tue, 26 Nov 2013 16:39:09 +0800 Rui Xiang <rui.xiang@huawei.com> 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.
> 

Ah, my fault. Ignore that, please.




^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-12-16  8:25 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-26  8:39 [PATCH 1/2] romfs: fix returm err while getting inode in fill_super Rui Xiang
2013-11-26  8:39 ` [PATCH 2/2] romfs: remove an redundant if condition in romfs_readpage Rui Xiang
2013-12-16  8:10   ` Andrew Morton
2013-12-16  8:24     ` Rui Xiang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox