RETURN(ERR_PTR(-ENAMETOOLONG));
err = ll_lock(dir, dentry, it, &lockh);
- if (err < 0) {
- /* FIXME: Mike LBUG() can disappear the moment that
- * ll_lock has sane interrupt behavior
- */
- LBUG();
+ if (err < 0)
RETURN(ERR_PTR(err));
- }
memcpy(it->it_lock_handle, &lockh, sizeof(lockh));
if ((it->it_op & (IT_CREAT | IT_MKDIR | IT_SYMLINK | IT_MKNOD)) &&
GOTO(negative, NULL);
if ((it->it_op & (IT_RENAME | IT_GETATTR | IT_UNLINK | IT_RMDIR |
- IT_SETATTR | IT_LOOKUP)) &&
+ IT_SETATTR | IT_LOOKUP)) &&
it->it_disposition && it->it_status)
GOTO(negative, NULL);
offset = 0;
} else if (it->it_op == IT_RENAME2) {
inode = ((struct dentry *)(it->it_data))->d_inode;
- GOTO(out_req, NULL);
+ GOTO(out_req, NULL);
} else {
offset = 1;
}
out_req:
ptlrpc_free_req(request);
- if (!inode || IS_ERR(inode)) {
- ll_intent_release(dentry);
+ if (!inode || IS_ERR(inode)) {
+ ll_intent_release(dentry);
RETURN(ERR_PTR(-ENOMEM));
}
EXIT;
mode |= S_ISGID;
}
- if (!it->it_disposition) {
+ if (!it || !it->it_disposition) {
rc = mdc_create(&sbi->ll_mdc_conn, dir, name, namelen, tgt,
tgtlen, mode, current->fsuid,
gid, time, extra, smd, &request);