staging: lustre: lov: remove unnecessary parentheses
[sfrench/cifs-2.6.git] / drivers / staging / lustre / lustre / lov / lov_obd.c
index 02781576637edd64657486d548fc8364a75550d5..ca1caaea27012454fb432b903853f254c774f268 100644 (file)
@@ -127,7 +127,6 @@ int lov_connect_obd(struct obd_device *obd, __u32 index, int activate,
        struct obd_device *tgt_obd;
        static struct obd_uuid lov_osc_uuid = { "LOV_OSC_UUID" };
        struct obd_import *imp;
-       struct proc_dir_entry *lov_proc_dir;
        int rc;
 
        if (!lov->lov_tgts[index])
@@ -186,28 +185,10 @@ int lov_connect_obd(struct obd_device *obd, __u32 index, int activate,
        CDEBUG(D_CONFIG, "Connected tgt idx %d %s (%s) %sactive\n", index,
               obd_uuid2str(tgt_uuid), tgt_obd->obd_name, activate ? "":"in");
 
-       lov_proc_dir = obd->obd_proc_private;
-       if (lov_proc_dir) {
-               struct obd_device *osc_obd = lov->lov_tgts[index]->ltd_exp->exp_obd;
-               struct proc_dir_entry *osc_symlink;
-
-               LASSERT(osc_obd != NULL);
-               LASSERT(osc_obd->obd_magic == OBD_DEVICE_MAGIC);
-               LASSERT(osc_obd->obd_type->typ_name != NULL);
-
-               osc_symlink = lprocfs_add_symlink(osc_obd->obd_name,
-                                                 lov_proc_dir,
-                                                 "../../../%s/%s",
-                                                 osc_obd->obd_type->typ_name,
-                                                 osc_obd->obd_name);
-               if (osc_symlink == NULL) {
-                       CERROR("could not register LOV target /proc/fs/lustre/%s/%s/target_obds/%s.",
-                              obd->obd_type->typ_name, obd->obd_name,
-                              osc_obd->obd_name);
-                       lprocfs_remove(&lov_proc_dir);
-                       obd->obd_proc_private = NULL;
-               }
-       }
+       if (lov->lov_tgts_kobj)
+               /* Even if we failed, that's ok */
+               rc = sysfs_create_link(lov->lov_tgts_kobj, &tgt_obd->obd_kobj,
+                                      tgt_obd->obd_name);
 
        return 0;
 }
@@ -239,6 +220,10 @@ static int lov_connect(const struct lu_env *env,
                lov->lov_ocd = *data;
 
        obd_getref(obd);
+
+       lov->lov_tgts_kobj = kobject_create_and_add("target_obds",
+                                                   &obd->obd_kobj);
+
        for (i = 0; i < lov->desc.ld_tgt_count; i++) {
                tgt = lov->lov_tgts[i];
                if (!tgt || obd_uuid_empty(&tgt->ltd_uuid))
@@ -268,7 +253,6 @@ static int lov_connect(const struct lu_env *env,
 
 static int lov_disconnect_obd(struct obd_device *obd, struct lov_tgt_desc *tgt)
 {
-       struct proc_dir_entry *lov_proc_dir;
        struct lov_obd *lov = &obd->u.lov;
        struct obd_device *osc_obd;
        int rc;
@@ -284,10 +268,10 @@ static int lov_disconnect_obd(struct obd_device *obd, struct lov_tgt_desc *tgt)
        }
 
        if (osc_obd) {
-               lov_proc_dir = obd->obd_proc_private;
-               if (lov_proc_dir) {
-                       lprocfs_remove_proc_entry(osc_obd->obd_name, lov_proc_dir);
-               }
+               if (lov->lov_tgts_kobj)
+                       sysfs_remove_link(lov->lov_tgts_kobj,
+                                         osc_obd->obd_name);
+
                /* Pass it on to our clients.
                 * XXX This should be an argument to disconnect,
                 * XXX not a back-door flag on the OBD.  Ah well.
@@ -337,6 +321,10 @@ static int lov_disconnect(struct obd_export *exp)
                        lov_del_target(obd, i, NULL, lov->lov_tgts[i]->ltd_gen);
                }
        }
+
+       if (lov->lov_tgts_kobj)
+               kobject_put(lov->lov_tgts_kobj);
+
        obd_putref(obd);
 
 out:
@@ -554,7 +542,7 @@ static int lov_add_target(struct obd_device *obd, struct obd_uuid *uuidp,
                newsize = max_t(__u32, lov->lov_tgt_size, 2);
                while (newsize < index + 1)
                        newsize <<= 1;
-               OBD_ALLOC(newtgts, sizeof(*newtgts) * newsize);
+               newtgts = kcalloc(newsize, sizeof(*newtgts), GFP_NOFS);
                if (newtgts == NULL) {
                        mutex_unlock(&lov->lov_lock);
                        return -ENOMEM;
@@ -570,14 +558,13 @@ static int lov_add_target(struct obd_device *obd, struct obd_uuid *uuidp,
                lov->lov_tgts = newtgts;
                lov->lov_tgt_size = newsize;
                smp_rmb();
-               if (old)
-                       OBD_FREE(old, sizeof(*old) * oldsize);
+               kfree(old);
 
                CDEBUG(D_CONFIG, "tgts: %p size: %d\n",
                       lov->lov_tgts, lov->lov_tgt_size);
        }
 
-       OBD_ALLOC_PTR(tgt);
+       tgt = kzalloc(sizeof(*tgt), GFP_NOFS);
        if (!tgt) {
                mutex_unlock(&lov->lov_lock);
                return -ENOMEM;
@@ -586,7 +573,7 @@ static int lov_add_target(struct obd_device *obd, struct obd_uuid *uuidp,
        rc = lov_ost_pool_add(&lov->lov_packed, index, lov->lov_tgt_size);
        if (rc) {
                mutex_unlock(&lov->lov_lock);
-               OBD_FREE_PTR(tgt);
+               kfree(tgt);
                return rc;
        }
 
@@ -712,7 +699,7 @@ static void __lov_del_obd(struct obd_device *obd, struct lov_tgt_desc *tgt)
        if (tgt->ltd_exp)
                lov_disconnect_obd(obd, tgt);
 
-       OBD_FREE_PTR(tgt);
+       kfree(tgt);
 
        /* Manual cleanup - no cleanup logs to clean up the osc's.  We must
           do it ourselves. And we can't do it from lov_cleanup,
@@ -822,21 +809,16 @@ int lov_setup(struct obd_device *obd, struct lustre_cfg *lcfg)
                goto out;
 
        lprocfs_lov_init_vars(&lvars);
-       lprocfs_obd_setup(obd, lvars.obd_vars);
-#if defined (CONFIG_PROC_FS)
-       {
-               int rc1;
+       lprocfs_obd_setup(obd, lvars.obd_vars, lvars.sysfs_vars);
 
-               rc1 = lprocfs_seq_create(obd->obd_proc_entry, "target_obd",
-                                       0444, &lov_proc_target_fops, obd);
-               if (rc1)
-                       CWARN("Error adding the target_obd file\n");
-       }
-#endif
-       lov->lov_pool_proc_entry = lprocfs_register("pools",
-                                                   obd->obd_proc_entry,
-                                                   NULL, NULL);
+       rc = ldebugfs_seq_create(obd->obd_debugfs_entry, "target_obd",
+                                0444, &lov_proc_target_fops, obd);
+       if (rc)
+               CWARN("Error adding the target_obd file\n");
 
+       lov->lov_pool_debugfs_entry = ldebugfs_register("pools",
+                                                    obd->obd_debugfs_entry,
+                                                    NULL, NULL);
        return 0;
 
 out:
@@ -903,8 +885,7 @@ static int lov_cleanup(struct obd_device *obd)
                        lov_del_target(obd, i, NULL, 0);
                }
                obd_putref(obd);
-               OBD_FREE(lov->lov_tgts, sizeof(*lov->lov_tgts) *
-                        lov->lov_tgt_size);
+               kfree(lov->lov_tgts);
                lov->lov_tgt_size = 0;
        }
        return 0;
@@ -994,7 +975,7 @@ static int lov_recreate(struct obd_export *exp, struct obdo *src_oa,
        LASSERT(src_oa->o_valid & OBD_MD_FLFLAGS &&
                src_oa->o_flags & OBD_FL_RECREATE_OBJS);
 
-       OBD_ALLOC(obj_mdp, sizeof(*obj_mdp));
+       obj_mdp = kzalloc(sizeof(*obj_mdp), GFP_NOFS);
        if (obj_mdp == NULL)
                return -ENOMEM;
 
@@ -1032,7 +1013,7 @@ static int lov_recreate(struct obd_export *exp, struct obdo *src_oa,
        rc = obd_create(NULL, lov->lov_tgts[ost_idx]->ltd_exp,
                        src_oa, &obj_mdp, oti);
 out:
-       OBD_FREE(obj_mdp, sizeof(*obj_mdp));
+       kfree(obj_mdp);
        return rc;
 }
 
@@ -1419,7 +1400,7 @@ static int lov_iocontrol(unsigned int cmd, struct obd_export *exp, int len,
                __u32 flags;
 
                memcpy(&index, data->ioc_inlbuf2, sizeof(__u32));
-               if ((index >= count))
+               if (index >= count)
                        return -ENODEV;
 
                if (!lov->lov_tgts[index])
@@ -1532,7 +1513,7 @@ static int lov_iocontrol(unsigned int cmd, struct obd_export *exp, int len,
                        return -EAGAIN;
 
                LASSERT(tgt && tgt->ltd_exp);
-               OBD_ALLOC_PTR(oqctl);
+               oqctl = kzalloc(sizeof(*oqctl), GFP_NOFS);
                if (!oqctl)
                        return -ENOMEM;
 
@@ -1543,7 +1524,7 @@ static int lov_iocontrol(unsigned int cmd, struct obd_export *exp, int len,
                        qctl->qc_valid = QC_OSTIDX;
                        qctl->obd_uuid = tgt->ltd_uuid;
                }
-               OBD_FREE_PTR(oqctl);
+               kfree(oqctl);
                break;
        }
        default: {
@@ -2367,7 +2348,7 @@ static int __init lov_init(void)
        }
        lprocfs_lov_init_vars(&lvars);
 
-       rc = class_register_type(&lov_obd_ops, NULL, lvars.module_vars,
+       rc = class_register_type(&lov_obd_ops, NULL,
                                 LUSTRE_LOV_NAME, &lov_device_type);
 
        if (rc) {