Skip to contentSkip to conversation

nilfs2: fix ignored error code in __nilfs_read_inode()

PATCH In review Ryusuke Konishi 2 participants 2 messages Aug 22, 2009 1 message not in the archive NILFS2 filesystem

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 nilfs2: fix ignored error code in __nilfs_read_inode()

Hi Yuri,

I found a bug in an inode routine when I was looking at the problem you reported. The attached patch is the bugfix for that.

I think this is _not_ the cause of your corruption problem. (in either case I will send this upstream at some time)

If you apply this, you may see "NILFS: get root inode failed" error instead of "NILFS: corrupt root inode.".

Regards,
Ryusuke Konishi
--
From: Ryusuke Konishi <[email protected]>

nilfs2: fix ignored error code in __nilfs_read_inode()

The __nilfs_read_inode function is ignoring the error code returned from nilfs_read_inode_common(), and wrongly delivers a success code (zero) when it escapes from the function in erroneous cases.

This adds the missing error handling.

---
 fs/nilfs2/inode.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
fs/nilfs2/inode.c +2 -1
index fe9d8f2..807e584 100644
@@ -430,7 +430,8 @@ static int __nilfs_read_inode(struct super_block *sb, unsigned long ino,
 
 	raw_inode = nilfs_ifile_map_inode(sbi->s_ifile, ino, bh);
 
-	if (nilfs_read_inode_common(inode, raw_inode))
+	err = nilfs_read_inode_common(inode, raw_inode);
+	if (err)
 		goto failed_unmap;
 
 	if (S_ISREG(inode->i_mode)) {

A message that is not in the archive (sent off-list or not yet received): [email protected]

#2 lore raw

Hi,

Quoted 2 lines · On Saturday 22 August 2009 14:21:57 Ryusuke Konishi wrote:

If you apply this, you may see "NILFS: get root inode failed" error instead of "NILFS: corrupt root inode.".

I still get the same error. I add some printk to super.c before line 847 I get, that S_ISLNK(root->i_mode) is True

Thank you.
Yuri.