ENTRY;
- CHECK_MOUNT_EPOCH(dir);
-
+ /* CHECK_MOUNT_EPOCH(dir); */
+ if (ll_i2info(dir)->lli_mount_epoch != ll_i2sbi(dir)->ll_mount_epoch)
+ RETURN(ERR_PTR(-EIO));
+
if (it == NULL) {
it = &lookup_it;
dentry->d_it = it;
static void ll_clear_inode(struct inode *inode)
{
- /* XXX EPOCH */
+ ENTRY;
if (atomic_read(&inode->i_count) == 0) {
struct ll_inode_info *lli = ll_i2info(inode);
lli->lli_symlink_name = NULL;
}
}
+ EXIT;
}
static void ll_delete_inode(struct inode *inode)
{
+ ENTRY;
if (S_ISREG(inode->i_mode)) {
int err;
struct obdo *oa;
}
out:
clear_inode(inode);
+ EXIT;
}
/* like inode_setattr, but doesn't mark the inode dirty */
struct dentry *dchild = NULL;
struct mds_obd *mds = mds_req2mds(req);
struct obd_device *obd = req->rq_export->exp_obd;
- struct mds_body *body;
+ struct mds_body *body = NULL;
char *name;
struct inode *dir, *inode;
struct lustre_handle lockh, child_lockh;