Skip to content
Snippets Groups Projects
Commit 81853ea5 authored by alex's avatar alex
Browse files

- check for bad inode in smfs_do_lookup()

parent 57f0713d
No related branches found
No related tags found
No related merge requests found
...@@ -227,19 +227,22 @@ static int smfs_do_lookup (struct inode * dir, ...@@ -227,19 +227,22 @@ static int smfs_do_lookup (struct inode * dir,
I2SMI(dir), 0); I2SMI(dir), 0);
if (!(*inode)) if (!(*inode))
rc = -ENOENT; rc = -ENOENT;
else { else if (!tmp->d_inode->i_nlink) {
if (!tmp->d_inode->i_nlink) { struct inode * ind = tmp->d_inode;
struct inode * ind = tmp->d_inode;
CDEBUG(D_ERROR, "inode #%lu (%*s) nlink is %i/%i\n",
CWARN("inode #%lu (%*s) nlink is %i/%i\n", ind->i_ino, tmp->d_name.len,
ind->i_ino, tmp->d_name.len, tmp->d_name.name, ind->i_nlink,
tmp->d_name.name, ind->i_nlink, (*inode)->i_nlink);
(*inode)->i_nlink); CDEBUG(D_ERROR, "parent #%lu (%*s) nlink is %i\n",
CWARN("parent #%lu (%*s) nlink is %i\n", dir->i_ino, tmp->d_parent->d_name.len,
dir->i_ino, tmp->d_parent->d_name.len, tmp->d_parent->d_name.name,
tmp->d_parent->d_name.name, cache_dir->i_nlink);
cache_dir->i_nlink); CDEBUG(D_ERROR, "rc = %d\n", rc);
}
if (is_bad_inode(ind))
CDEBUG(D_ERROR, "bad inode returned %lu/%u\n",
ind->i_ino, ind->i_generation);
} }
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment