nilfs2: fix ignored error code in __nilfs_read_inode()
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
@@ -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]
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.