}
lmv_set_timeouts(obd);
-
class_export_put(exp);
return 0;
if (!lmv->connected)
class_export_put(exp);
rc = class_disconnect(exp, 0);
+ if (lmv->refcount == 0)
+ lmv->connected = 0;
RETURN(rc);
}
obj = lmv_grab_obj(obd, pfid);
if (obj) {
/* directory is splitted. look for right mds for this name. */
- mds = raw_name2idx(obj->objcount, name, len);
+ mds = raw_name2idx(obj->hashtype, obj->objcount, name, len);
mds = obj->objs[mds].fid.mds;
lmv_put_obj(obj);
}
LASSERT(++loop <= 2);
obj = lmv_grab_obj(obd, &op_data->fid1);
if (obj) {
- mds = raw_name2idx(obj->objcount, op_data->name,
+ mds = raw_name2idx(obj->hashtype, obj->objcount, op_data->name,
op_data->namelen);
op_data->fid1 = obj->objs[mds].fid;
lmv_put_obj(obj);
if (obj) {
/* directory is splitted. look for right mds for this
* name */
- mds = raw_name2idx(obj->objcount, (char *)data->name,
- data->namelen);
+ mds = raw_name2idx(obj->hashtype, obj->objcount,
+ (char *)data->name, data->namelen);
data->fid1 = obj->objs[mds].fid;
lmv_put_obj(obj);
}
obj = lmv_grab_obj(obd, fid);
if (obj) {
/* directory is splitted. look for right mds for this name */
- mds = raw_name2idx(obj->objcount, filename, namelen - 1);
+ mds = raw_name2idx(obj->hashtype, obj->objcount, filename, namelen - 1);
rfid = obj->objs[mds].fid;
lmv_put_obj(obj);
}
/* usual link request */
obj = lmv_grab_obj(obd, &data->fid1);
if (obj) {
- rc = raw_name2idx(obj->objcount, data->name,
+ rc = raw_name2idx(obj->hashtype, obj->objcount, data->name,
data->namelen);
data->fid1 = obj->objs[rc].fid;
lmv_put_obj(obj);
if (obj) {
/* directory is already splitted, so we have to forward request
* to the right MDS */
- mds = raw_name2idx(obj->objcount, (char *)old, oldlen);
+ mds = raw_name2idx(obj->hashtype, obj->objcount, (char *)old, oldlen);
data->fid1 = obj->objs[mds].fid;
CDEBUG(D_OTHER, "forward to MDS #%u (%lu/%lu/%lu)\n", mds,
(unsigned long)obj->objs[mds].fid.mds,
if (obj) {
/* directory is already splitted, so we have to forward request
* to the right MDS */
- mds = raw_name2idx(obj->objcount, (char *)new, newlen);
+ mds = raw_name2idx(obj->hashtype, obj->objcount, (char *)new, newlen);
data->fid2 = obj->objs[mds].fid;
CDEBUG(D_OTHER, "forward to MDS #%u (%lu/%lu/%lu)\n", mds,
(unsigned long)obj->objs[mds].fid.mds,
obj = lmv_grab_obj(obd, &data->fid1);
if (obj) {
- i = raw_name2idx(obj->objcount, data->name,
+ i = raw_name2idx(obj->hashtype, obj->objcount, data->name,
data->namelen);
data->fid1 = obj->objs[i].fid;
lmv_put_obj(obj);
mea = (struct mea *)*ea;
if (!mea->mea_count || mea->mea_count > lmv->desc.ld_tgt_count)
mea->mea_count = lmv->desc.ld_tgt_count;
+ mea->mea_magic = MEA_MAGIC_ALL_CHARS;
mea->mea_master = -1;
lcount = lmv->desc.ld_tgt_count;