if (IS_ERR(handle))
RETURN(-ENOSPC);
- SMFS_CACHE_HOOK_PRE(CACHE_HOOK_CREATE, handle, dir);
+ SMFS_CACHE_HOOK_PRE(CACHE_HOOK_CREATE, handle, dir, rc);
cache_parent = pre_smfs_dentry(NULL, cache_dir, dentry);
cache_dentry = pre_smfs_dentry(cache_parent, NULL, dentry);
if (!(cache_dir = I2CI(dir)))
RETURN(ERR_PTR(-ENOENT));
- handle = smfs_trans_start(dir, KML_CACHE_NOOP, NULL);
- if (IS_ERR(handle))
- RETURN(ERR_PTR(-ENOSPC));
-
- SMFS_CACHE_HOOK_PRE(CACHE_HOOK_LOOKUP, handle, dir);
+ SMFS_CACHE_HOOK_PRE(CACHE_HOOK_LOOKUP, handle, dir, rc2);
+
+ if (rc2)
+ RETURN(ERR_PTR(rc2));
/* preparing artificial backing fs dentries. */
cache_parent = pre_smfs_dentry(NULL, cache_dir, dentry->d_parent);
handle = smfs_trans_start(dir, FSFILT_OP_LINK, NULL);
if (IS_ERR(handle))
- RETURN(-ENOSPC);
-
- SMFS_CACHE_HOOK_PRE(CACHE_HOOK_LINK, handle, dir);
+ RETURN(-ENOSPC);
+ SMFS_CACHE_HOOK_PRE(CACHE_HOOK_LINK, handle, dir, rc);
+
cache_parent = pre_smfs_dentry(NULL, cache_dir, dentry);
cache_dentry = pre_smfs_dentry(cache_parent, NULL, dentry);
if (IS_ERR(handle))
RETURN(-ENOSPC);
- SMFS_CACHE_HOOK_PRE(CACHE_HOOK_UNLINK, handle, dir);
+ SMFS_CACHE_HOOK_PRE(CACHE_HOOK_UNLINK, handle, dir, rc);
cache_parent = pre_smfs_dentry(NULL, cache_dir, dentry);
cache_dentry = pre_smfs_dentry(cache_parent, cache_inode, dentry);
if (IS_ERR(handle))
RETURN(-ENOSPC);
- SMFS_CACHE_HOOK_PRE(CACHE_HOOK_SYMLINK, handle, dir);
+ SMFS_CACHE_HOOK_PRE(CACHE_HOOK_SYMLINK, handle, dir, rc);
pre_smfs_inode(dir, cache_dir);
lock_kernel();
if (IS_ERR(handle))
RETURN(-ENOSPC);
- SMFS_CACHE_HOOK_PRE(CACHE_HOOK_MKDIR, handle, dir);
+ SMFS_CACHE_HOOK_PRE(CACHE_HOOK_MKDIR, handle, dir, rc);
cache_parent = pre_smfs_dentry(NULL, cache_dir, dentry);
cache_dentry = pre_smfs_dentry(cache_parent, NULL, dentry);
RETURN(-ENOSPC);
}
- SMFS_CACHE_HOOK_PRE(CACHE_HOOK_RMDIR, handle, dir);
+ SMFS_CACHE_HOOK_PRE(CACHE_HOOK_RMDIR, handle, dir, rc);
cache_parent = pre_smfs_dentry(NULL, cache_dir, dentry);
cache_dentry = pre_smfs_dentry(cache_parent, cache_inode, dentry);
CERROR("smfs_do_mkdir: no space for transaction\n");
RETURN(-ENOSPC);
}
- SMFS_CACHE_HOOK_PRE(CACHE_HOOK_MKNOD, handle, dir);
+ SMFS_CACHE_HOOK_PRE(CACHE_HOOK_MKNOD, handle, dir, rc);
cache_parent = pre_smfs_dentry(NULL, cache_dir, dentry->d_parent);
cache_dentry = pre_smfs_dentry(cache_parent, NULL, dentry);
}
lock_kernel();
- SMFS_CACHE_HOOK_PRE(CACHE_HOOK_RENAME, handle, old_dir);
+ SMFS_CACHE_HOOK_PRE(CACHE_HOOK_RENAME, handle, old_dir, rc);
cache_old_parent = pre_smfs_dentry(NULL, cache_old_dir, old_dentry);
cache_old_dentry = pre_smfs_dentry(cache_old_parent, cache_old_inode,