int rc = 0;
ENTRY;
-
+
+ CDEBUG(D_INODE, "VFS Op:name=%.*s (%p),dir=%lu/%u\n",
+ dentry->d_name.len, dentry->d_name.name, dentry,
+ dir->i_ino, dir->i_generation);
+
LASSERT(cache_dir);
LASSERT(cache_dir->i_op->create);
ENTRY;
+ CDEBUG(D_INODE, "VFS Op:name=%.*s (%p),dir=%lu/%u\n",
+ dentry->d_name.len, dentry->d_name.name, dentry,
+ dir->i_ino, dir->i_generation);
+
if (!cache_dir)
RETURN(-ENOENT);
smfs_update_dentry(dentry, tmp);
if (tmp->d_inode) {
- if (!tmp->d_inode->i_nlink)
- CWARN("inode #%lu (%p) nlink is 0\n",
- tmp->d_inode->i_ino, tmp->d_inode);
-
*inode = smfs_get_inode(dir->i_sb, tmp->d_inode,
I2SMI(dir), 0);
if (!(*inode))
rc = -ENOENT;
+ else {
+ if (!tmp->d_inode->i_nlink) {
+ struct inode * ind = tmp->d_inode;
+
+ CWARN("inode #%lu (%*s) nlink is %i/%i\n",
+ ind->i_ino, tmp->d_name.len,
+ tmp->d_name.name, ind->i_nlink,
+ (*inode)->i_nlink);
+ CWARN("parent #%lu (%*s) nlink is %i\n",
+ dir->i_ino, tmp->d_parent->d_name.len,
+ tmp->d_parent->d_name.name,
+ cache_dir->i_nlink);
+ LBUG();
+ }
+ }
}
}
LASSERT(cache_dir->i_op->unlink);
LASSERT(parent);
+ CDEBUG(D_INODE, "VFS Op:name=%.*s (%p),dir=%lu/%u\n",
+ dentry->d_name.len, dentry->d_name.name, dentry,
+ dir->i_ino, dir->i_generation);
+
cache_parent = pre_smfs_dentry(NULL, parent, dentry->d_parent);
cache_dentry = pre_smfs_dentry(cache_parent, cache_inode, dentry);
if (!cache_dentry || !cache_parent) {
LASSERT(cache_dir);
LASSERT(parent);
+ CDEBUG(D_INODE, "VFS Op:name=%.*s (%p),dir=%lu/%u\n",
+ dentry->d_name.len, dentry->d_name.name, dentry,
+ dir->i_ino, dir->i_generation);
+
+
cache_parent = pre_smfs_dentry(NULL, parent, dentry->d_parent);
cache_dentry = pre_smfs_dentry(cache_parent, NULL, dentry);
if (!cache_parent || !cache_dentry) {
ENTRY;
+ CDEBUG(D_INODE, "VFS Op:name=%.*s (%p),dir=%lu/%u\n",
+ dentry->d_name.len, dentry->d_name.name, dentry,
+ dir->i_ino, dir->i_generation);
+
LASSERT(cache_dir);
LASSERT(cache_dir->i_op->rmdir);
LASSERT(parent);