- *eof = 1;
- return snprintf(page, count, "%u\n", desc->ld_tgt_count);
-
-}
-
-static const char *placement_name[] = {
- [PLACEMENT_CHAR_POLICY] = "CHAR",
- [PLACEMENT_NID_POLICY] = "NID"
-};
-
-static placement_policy_t placement_name2policy(char *name, int len)
-{
- int i;
-
- for (i = 0; i < PLACEMENT_MAX_POLICY; i++) {
- if (!strncmp(placement_name[i], name, len))
- return i;
- }
- return PLACEMENT_INVAL_POLICY;
-}
-
-static const char *placement_policy2name(placement_policy_t placement)
-{
- LASSERT(placement < PLACEMENT_MAX_POLICY);
- return placement_name[placement];
-}
-
-static int lmv_rd_placement(char *page, char **start, off_t off, int count,
- int *eof, void *data)
-{
- struct obd_device *dev = (struct obd_device*)data;
- struct lmv_obd *lmv;
-
- LASSERT(dev != NULL);
- lmv = &dev->u.lmv;
- *eof = 1;
- return snprintf(page, count, "%s\n",
- placement_policy2name(lmv->lmv_placement));
-
-}
-
-#define MAX_POLICY_STRING_SIZE 64
-
-static int lmv_wr_placement(struct file *file, const char *buffer,
- unsigned long count, void *data)
-{
- struct obd_device *dev = (struct obd_device *)data;
- char dummy[MAX_POLICY_STRING_SIZE + 1];
- int len = count;
- placement_policy_t policy;
- struct lmv_obd *lmv;
-
- if (cfs_copy_from_user(dummy, buffer, MAX_POLICY_STRING_SIZE))
- return -EFAULT;
-
- LASSERT(dev != NULL);
- lmv = &dev->u.lmv;
-
- if (len > MAX_POLICY_STRING_SIZE)
- len = MAX_POLICY_STRING_SIZE;
-
- if (dummy[len - 1] == '\n')
- len--;
- dummy[len] = '\0';
-
- policy = placement_name2policy(dummy, len);
- if (policy != PLACEMENT_INVAL_POLICY) {
- spin_lock(&lmv->lmv_lock);
- lmv->lmv_placement = policy;
- spin_unlock(&lmv->lmv_lock);
- } else {
- CERROR("Invalid placement policy \"%s\"!\n", dummy);
- return -EINVAL;
- }
- return count;