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. Signed-off-by: Ryusuke Konishi <[email protected]> --- fs/nilfs2/inode.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/fs/nilfs2/inode.c b/fs/nilfs2/inode.c index fe9d8f2..807e584 100644 --- a/fs/nilfs2/inode.c +++ b/fs/nilfs2/inode.c @@ -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)) { _______________________________________________ users mailing list [email protected] https://www.nilfs.org/mailman/listinfo/users
