/*
* Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
+ *
+ * Copyright (c) 2011 Whamcloud, Inc.
+ *
*/
/*
* This file is part of Lustre, http://www.lustre.org/
RETURN(-ENOTDIR);
iops = &obj->do_index_ops->dio_it;
- it = iops->init(env, obj, BYPASS_CAPA);
- if (it != NULL) {
+ it = iops->init(env, obj, LUDA_64BITHASH, BYPASS_CAPA);
+ if (!IS_ERR(it)) {
result = iops->get(env, it, (const void *)"");
if (result > 0) {
int i;
iops->put(env, it);
iops->fini(env, it);
} else
- result = -ENOMEM;
+ result = PTR_ERR(it);
RETURN(result);
}
}
#endif
- mdd_txn_param_build(env, mdd, MDD_TXN_LINK_OP);
+ mdd_txn_param_build(env, mdd, MDD_TXN_LINK_OP, 1);
handle = mdd_trans_start(env, mdd);
if (IS_ERR(handle))
GOTO(out_pending, rc = PTR_ERR(handle));
LASSERTF(mdd_object_exists(mdd_cobj) > 0, "FID is "DFID"\n",
PFID(mdd_object_fid(mdd_cobj)));
- rc = mdd_log_txn_param_build(env, cobj, ma, MDD_TXN_UNLINK_OP);
+ rc = mdd_log_txn_param_build(env, cobj, ma, MDD_TXN_UNLINK_OP, 1);
if (rc)
RETURN(rc);
}
}
#endif
- mdd_txn_param_build(env, mdd, MDD_TXN_INDEX_INSERT_OP);
+ mdd_txn_param_build(env, mdd, MDD_TXN_INDEX_INSERT_OP, 0);
handle = mdd_trans_start(env, mdo2mdd(pobj));
if (IS_ERR(handle))
GOTO(out_pending, rc = PTR_ERR(handle));
}
}
#endif
- mdd_txn_param_build(env, mdd, MDD_TXN_INDEX_DELETE_OP);
+ mdd_txn_param_build(env, mdd, MDD_TXN_INDEX_DELETE_OP, 0);
handle = mdd_trans_start(env, mdd);
if (IS_ERR(handle))
GOTO(out_pending, rc = PTR_ERR(handle));
}
}
#endif
- mdd_txn_param_build(env, mdd, MDD_TXN_RENAME_TGT_OP);
+ if (tobj && mdd_object_exists(mdd_tobj))
+ mdd_log_txn_param_build(env, tobj, ma, MDD_TXN_RENAME_TGT_OP,1);
+ else
+ mdd_txn_param_build(env, mdd, MDD_TXN_RENAME_TGT_OP, 1);
handle = mdd_trans_start(env, mdd);
if (IS_ERR(handle))
GOTO(out_pending, rc = PTR_ERR(handle));
if (rc)
RETURN(rc);
- mdd_txn_param_build(env, mdd, MDD_TXN_CREATE_DATA_OP);
+ mdd_create_txn_param_build(env, mdd, lmm, MDD_TXN_CREATE_DATA_OP, 0);
handle = mdd_trans_start(env, mdd);
if (IS_ERR(handle))
GOTO(out_free, rc = PTR_ERR(handle));
got_def_acl = 1;
}
- mdd_txn_param_build(env, mdd, MDD_TXN_MKDIR_OP);
+ mdd_create_txn_param_build(env, mdd, lmm, MDD_TXN_MKDIR_OP, 1);
handle = mdd_trans_start(env, mdd);
if (IS_ERR(handle))
GOTO(out_free, rc = PTR_ERR(handle));
}
}
#endif
- mdd_txn_param_build(env, mdd, MDD_TXN_RENAME_OP);
+ if (tobj && mdd_object_exists(mdd_tobj))
+ mdd_log_txn_param_build(env, tobj, ma, MDD_TXN_RENAME_OP, 2);
+ else
+ mdd_txn_param_build(env, mdd, MDD_TXN_RENAME_OP, 2);
handle = mdd_trans_start(env, mdd);
if (IS_ERR(handle))
GOTO(out_pending, rc = PTR_ERR(handle));
PFID(mdd_object_fid(mdd_obj)));
}
- if (buf->lb_vmalloc)
+ if (buf->lb_len > OBD_ALLOC_BIG)
/* if we vmalloced a large buffer drop it */
mdd_buf_put(buf);
oldlname->ln_namelen, oldlname->ln_name, rc,
PFID(mdd_object_fid(mdd_obj)));
- if (buf->lb_vmalloc)
+ if (buf->lb_len > OBD_ALLOC_BIG)
/* if we vmalloced a large buffer drop it */
mdd_buf_put(buf);