diff options
author | codeworkx <codeworkx@cyanogenmod.com> | 2012-09-22 09:48:20 +0200 |
---|---|---|
committer | codeworkx <codeworkx@cyanogenmod.com> | 2012-09-22 14:02:16 +0200 |
commit | 2489007e7d740ccbc3e0a202914e243ad5178787 (patch) | |
tree | b8e6380ea7b1da63474ad68a5dba997e01146043 /fs/ext4/namei.c | |
parent | 5f67568eb31e3a813c7c52461dcf66ade15fc2e7 (diff) | |
download | kernel_samsung_smdk4412-2489007e7d740ccbc3e0a202914e243ad5178787.zip kernel_samsung_smdk4412-2489007e7d740ccbc3e0a202914e243ad5178787.tar.gz kernel_samsung_smdk4412-2489007e7d740ccbc3e0a202914e243ad5178787.tar.bz2 |
merge opensource jb u5
Change-Id: I1aaec157aa196f3448eff8636134fce89a814cf2
Diffstat (limited to 'fs/ext4/namei.c')
-rw-r--r-- | fs/ext4/namei.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c index 3d36d5a..5767c50 100644 --- a/fs/ext4/namei.c +++ b/fs/ext4/namei.c @@ -1031,17 +1031,25 @@ static struct dentry *ext4_lookup(struct inode *dir, struct dentry *dentry, stru inode = NULL; if (bh) { __u32 ino = le32_to_cpu(de->inode); - brelse(bh); if (!ext4_valid_inum(dir->i_sb, ino)) { + /* for debugging, sangwoo2.lee */ + printk(KERN_ERR "Name of directory entry has bad inode# : %s\n", de->name); + print_bh(dir->i_sb, bh, 0, EXT4_BLOCK_SIZE(dir->i_sb)); + /* for debugging */ + brelse(bh); + EXT4_ERROR_INODE(dir, "bad inode number: %u", ino); return ERR_PTR(-EIO); } + brelse(bh); + inode = ext4_iget(dir->i_sb, ino); if (IS_ERR(inode)) { if (PTR_ERR(inode) == -ESTALE) { + /* In case of -ESTALE, printing debugging data is already done in ext4_iget */ EXT4_ERROR_INODE(dir, - "deleted inode referenced: %u", - ino); + "deleted inode referenced: %u at parent inode : %lu", + ino, dir->i_ino); return ERR_PTR(-EIO); } else { return ERR_CAST(inode); |