aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ext4/namei.c
diff options
context:
space:
mode:
authorcodeworkx <codeworkx@cyanogenmod.com>2012-09-22 09:48:20 +0200
committercodeworkx <codeworkx@cyanogenmod.com>2012-09-22 14:02:16 +0200
commit2489007e7d740ccbc3e0a202914e243ad5178787 (patch)
treeb8e6380ea7b1da63474ad68a5dba997e01146043 /fs/ext4/namei.c
parent5f67568eb31e3a813c7c52461dcf66ade15fc2e7 (diff)
downloadkernel_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.c14
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);