if (ptlrpc_reply(svc, req))
LBUG();
- if (!err)
- ldlm_reprocess_all(lock->l_resource);
if (err)
LDLM_DEBUG_NOLOCK("server-side enqueue handler END");
- else
+ else {
+ ldlm_reprocess_all(lock->l_resource);
LDLM_DEBUG(lock, "server-side enqueue handler END");
+ }
return 0;
}
return result;
}
-static int mds_connect(struct ptlrpc_request *req)
+static int mds_connect(struct ptlrpc_request *req, struct mds_obd **mdsp)
{
struct mds_obd *mds;
char *uuid;
RETURN(-ENODEV);
}
- mds = &(obd_dev[i].u.mds);
+ *mdsp = mds = &(obd_dev[i].u.mds);
if (mds != &(req->rq_obd->u.mds)) {
CERROR("device %d (%s) is not an mds\n", i, uuid);
req->rq_status = -ENODEV;
case MDS_CONNECT:
CDEBUG(D_INODE, "connect\n");
OBD_FAIL_RETURN(OBD_FAIL_MDS_CONNECT_NET, 0);
- rc = mds_connect(req);
+ rc = mds_connect(req, &mds);
break;
case MDS_DISCONNECT:
CDEBUG(D_NET, "sending reply\n");
ptlrpc_reply(svc, req);
}
-
return 0;
}