return qmt;
}
+/* Run QMT0000 pool operations only for MDT0000 */
+static inline bool lod_pool_need_qmt0(const char *obd_name)
+{
+ __u32 idx;
+ int type;
+
+ type = server_name2index(obd_name, &idx, NULL);
+
+ return type == LDD_F_SV_TYPE_MDT && idx == 0;
+}
+
static int lod_pool_new_q(struct obd_device *obd, char *poolname)
{
int err = lod_pool_new(obd, poolname);
- if (!err) {
+ if (!err && lod_pool_need_qmt0(obd->obd_name)) {
obd = obd_find_qmt0(obd->obd_name);
if (obd)
obd_pool_new(obd, poolname);
{
int err = lod_pool_remove(obd, poolname, ostname);
- if (!err) {
+ if (!err && lod_pool_need_qmt0(obd->obd_name)) {
obd = obd_find_qmt0(obd->obd_name);
if (obd)
obd_pool_rem(obd, poolname, ostname);
{
int err = lod_pool_add(obd, poolname, ostname);
- if (!err) {
+ if (!err && lod_pool_need_qmt0(obd->obd_name)) {
obd = obd_find_qmt0(obd->obd_name);
if (obd)
obd_pool_add(obd, poolname, ostname);
{
int err = lod_pool_del(obd, poolname);
- if (!err) {
+ if (!err && lod_pool_need_qmt0(obd->obd_name)) {
obd = obd_find_qmt0(obd->obd_name);
if (obd)
obd_pool_del(obd, poolname);