Whamcloud - gitweb
LU-2826 tests: Re-enable sanity/18
[fs/lustre-release.git] / lustre / lmv / lproc_lmv.c
index 555f4dc..bde45c6 100644 (file)
@@ -1,6 +1,4 @@
-/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
- * vim:expandtab:shiftwidth=8:tabstop=8:
- *
+/*
  * GPL HEADER START
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  * GPL HEADER END
  */
 /*
- * Copyright  2008 Sun Microsystems, Inc. All rights reserved
+ * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
  * Use is subject to license terms.
+ *
+ * Copyright (c) 2012, Intel Corporation.
  */
 /*
  * This file is part of Lustre, http://www.lustre.org/
@@ -61,7 +61,8 @@ static int lmv_rd_numobd(char *page, char **start, off_t off, int count,
 
 static const char *placement_name[] = {
         [PLACEMENT_CHAR_POLICY] = "CHAR",
-        [PLACEMENT_NID_POLICY]  = "NID"
+       [PLACEMENT_NID_POLICY]  = "NID",
+       [PLACEMENT_INVAL_POLICY]  = "INVAL"
 };
 
 static placement_policy_t placement_name2policy(char *name, int len)
@@ -106,7 +107,7 @@ static int lmv_wr_placement(struct file *file, const char *buffer,
         placement_policy_t       policy;
         struct lmv_obd          *lmv;
 
-        if (copy_from_user(dummy, buffer, MAX_POLICY_STRING_SIZE))
+        if (cfs_copy_from_user(dummy, buffer, MAX_POLICY_STRING_SIZE))
                 return -EFAULT;
 
         LASSERT(dev != NULL);
@@ -121,9 +122,9 @@ static int lmv_wr_placement(struct file *file, const char *buffer,
 
         policy = placement_name2policy(dummy, len);
         if (policy != PLACEMENT_INVAL_POLICY) {
-                spin_lock(&lmv->lmv_lock);
-                lmv->lmv_placement = policy;
-                spin_unlock(&lmv->lmv_lock);
+               spin_lock(&lmv->lmv_lock);
+               lmv->lmv_placement = policy;
+               spin_unlock(&lmv->lmv_lock);
         } else {
                 CERROR("Invalid placement policy \"%s\"!\n", dummy);
                 return -EINVAL;
@@ -157,10 +158,9 @@ static int lmv_rd_desc_uuid(char *page, char **start, off_t off, int count,
 
 static void *lmv_tgt_seq_start(struct seq_file *p, loff_t *pos)
 {
-        struct obd_device       *dev = p->private;
-        struct lmv_obd          *lmv = &dev->u.lmv;
-        return (*pos >= lmv->desc.ld_tgt_count) ? NULL : &(lmv->tgts[*pos]);
-
+       struct obd_device       *dev = p->private;
+       struct lmv_obd          *lmv = &dev->u.lmv;
+       return (*pos >= lmv->desc.ld_tgt_count) ? NULL : lmv->tgts[*pos];
 }
 
 static void lmv_tgt_seq_stop(struct seq_file *p, void *v)
@@ -170,21 +170,20 @@ static void lmv_tgt_seq_stop(struct seq_file *p, void *v)
 
 static void *lmv_tgt_seq_next(struct seq_file *p, void *v, loff_t *pos)
 {
-        struct obd_device       *dev = p->private;
-        struct lmv_obd          *lmv = &dev->u.lmv;
-        ++*pos;
-        return (*pos >=lmv->desc.ld_tgt_count) ? NULL : &(lmv->tgts[*pos]);
+       struct obd_device       *dev = p->private;
+       struct lmv_obd          *lmv = &dev->u.lmv;
+       ++*pos;
+       return (*pos >= lmv->desc.ld_tgt_count) ? NULL : lmv->tgts[*pos];
 }
 
 static int lmv_tgt_seq_show(struct seq_file *p, void *v)
 {
-        struct lmv_tgt_desc     *tgt = v;
-        struct obd_device       *dev = p->private;
-        struct lmv_obd          *lmv = &dev->u.lmv;
-        int                      idx = tgt - &(lmv->tgts[0]);
+       struct lmv_tgt_desc     *tgt = v;
 
-        return seq_printf(p, "%d: %s %sACTIVE\n", idx, tgt->ltd_uuid.uuid,
-                          tgt->ltd_active ? "" : "IN");
+       if (tgt == NULL)
+               return 0;
+       return seq_printf(p, "%d: %s %sACTIVE\n", tgt->ltd_idx,
+                         tgt->ltd_uuid.uuid, tgt->ltd_active ? "" : "IN");
 }
 
 struct seq_operations lmv_tgt_sops = {