unsigned int depth;
dev_t st_dev;
- char poolname[MAXPOOLNAME+1];
+ char poolname[LOV_MAXPOOLNAME + 1];
};
extern int llapi_getstripe(char *path, struct find_param *param);
#define LOV_OBJECT_GROUP_DEFAULT ~0ULL
#define LOV_OBJECT_GROUP_CLEAR 0ULL
-#define MAXPOOLNAME 16
-#define POOLNAMEF "%.16s"
-
#define lov_ost_data lov_ost_data_v1
struct lov_ost_data_v1 { /* per-stripe data structure (little-endian)*/
__u64 l_object_id; /* OST object ID */
__u64 lmm_object_gr; /* LOV object group */
__u32 lmm_stripe_size; /* size of stripe in bytes */
__u32 lmm_stripe_count; /* num stripes in use for this object */
- char lmm_pool_name[MAXPOOLNAME]; /* must be 32bit aligned */
+ char lmm_pool_name[LOV_MAXPOOLNAME]; /* must be 32bit aligned */
struct lov_ost_data_v1 lmm_objects[0]; /* per-stripe data */
};
#define LOV_PATTERN_RAID1 0x002
#define LOV_PATTERN_FIRST 0x100
-#define MAXPOOLNAME 16
+#define LOV_MAXPOOLNAME 16
+#define LOV_POOLNAMEF "%.16s"
#define lov_user_ost_data lov_user_ost_data_v1
struct lov_user_ost_data_v1 { /* per-stripe data structure */
__u32 lmm_stripe_size; /* size of stripe in bytes */
__u16 lmm_stripe_count; /* num stripes in use for this object */
__u16 lmm_stripe_offset; /* starting stripe offset in lmm_objects */
- char lmm_pool_name[MAXPOOLNAME]; /* pool name */
+ char lmm_pool_name[LOV_MAXPOOLNAME]; /* pool name */
struct lov_user_ost_data_v1 lmm_objects[0]; /* per-stripe data */
} __attribute__((packed));
__u32 lw_stripe_size; /* size of the stripe */
__u32 lw_pattern; /* striping pattern (RAID0, RAID1) */
unsigned lw_stripe_count; /* number of objects being striped over */
- char lw_pool_name[MAXPOOLNAME]; /* pool name */
+ char lw_pool_name[LOV_MAXPOOLNAME]; /* pool name */
} lsm_wire;
struct lov_array_info *lsm_array; /*Only for joined file array info*/
#define pool_tgt(_p, _i) _p->pool_lov->lov_tgts[_p->pool_obds.op_array[_i]]
struct pool_desc {
- char pool_name[MAXPOOLNAME + 1]; /* name of pool */
- struct ost_pool pool_obds; /* pool members */
- struct lov_qos_rr pool_rr; /* round robin qos */
- struct hlist_node pool_hash; /* access by poolname */
- struct list_head pool_list; /* serial access */
- cfs_proc_dir_entry_t *pool_proc_entry; /* file in /proc */
- struct lov_obd *pool_lov; /* lov obd to which this
- pool belong */
+ char pool_name[LOV_MAXPOOLNAME + 1]; /* name of pool */
+ struct ost_pool pool_obds; /* pool members */
+ struct lov_qos_rr pool_rr; /* round robin qos */
+ struct hlist_node pool_hash; /* access by poolname */
+ struct list_head pool_list; /* serial access */
+ cfs_proc_dir_entry_t *pool_proc_entry; /* file in /proc */
+ struct lov_obd *pool_lov; /* lov obd to which this
+ pool belong */
};
struct lov_obd {
lmm = (struct lov_mds_md_v3 *)lmmv1;
lsm_unpackmd_common(lsm, (struct lov_mds_md_v1 *)lmm);
- strncpy(lsm->lsm_pool_name, lmm->lmm_pool_name, MAXPOOLNAME);
+ strncpy(lsm->lsm_pool_name, lmm->lmm_pool_name, LOV_MAXPOOLNAME);
for (i = 0; i < lsm->lsm_stripe_count; i++) {
/* XXX LOV STACKING call down to osc_unpackmd() */
CDEBUG(level,"stripe_size %u, stripe_count %u\n",
le32_to_cpu(lmm->lmm_stripe_size),
le32_to_cpu(lmm->lmm_stripe_count));
- CDEBUG(level,"pool_name "POOLNAMEF"\n", lmm->lmm_pool_name);
+ CDEBUG(level,"pool_name "LOV_POOLNAMEF"\n", lmm->lmm_pool_name);
if (le32_to_cpu(lmm->lmm_stripe_count) <= LOV_V1_INSANE_STRIPE_COUNT) {
for (i = 0, lod = lmm->lmm_objects;
lmmv1->lmm_stripe_count = cpu_to_le32(stripe_count);
lmmv1->lmm_pattern = cpu_to_le32(lsm->lsm_pattern);
if (lsm->lsm_magic == LOV_MAGIC_V3) {
- strncpy(lmmv3->lmm_pool_name, lsm->lsm_pool_name, MAXPOOLNAME);
+ strncpy(lmmv3->lmm_pool_name, lsm->lsm_pool_name,
+ LOV_MAXPOOLNAME);
lmm_objects = lmmv3->lmm_objects;
} else {
lmm_objects = lmmv1->lmm_objects;
(*lsmp)->lsm_stripe_size = lumv1->lmm_stripe_size;
if (lmm_magic == LOV_USER_MAGIC_V3)
strncpy((*lsmp)->lsm_pool_name, lumv3.lmm_pool_name,
- MAXPOOLNAME);
+ LOV_MAXPOOLNAME);
rc = 0;
}
result = 0;
poolname = (char *)key;
- for (i = 0; i < MAXPOOLNAME; i++) {
+ for (i = 0; i < LOV_MAXPOOLNAME; i++) {
if (poolname[i] == '\0')
break;
result = (result << 4)^(result >> 28) ^ poolname[i];
pool_name = (char *)key;
pool = hlist_entry(compared_hnode, struct pool_desc, pool_hash);
- rc = strncmp(pool_name, pool->pool_name, MAXPOOLNAME);
+ rc = strncmp(pool_name, pool->pool_name, LOV_MAXPOOLNAME);
return (!rc);
}
{
int i;
- CDEBUG(level, "pool "POOLNAMEF" has %d members\n",
+ CDEBUG(level, "pool "LOV_POOLNAMEF" has %d members\n",
pool->pool_name, pool->pool_obds.op_count);
read_lock(&pool_tgt_rwlock(pool));
for (i = 0; i < pool_tgt_count(pool) ; i++) {
if (!pool_tgt(pool, i) || !(pool_tgt(pool, i))->ltd_exp)
continue;
- CDEBUG(level, "pool "POOLNAMEF"[%d] = %s\n", pool->pool_name,
- i, obd_uuid2str(&((pool_tgt(pool, i))->ltd_uuid)));
+ CDEBUG(level, "pool "LOV_POOLNAMEF"[%d] = %s\n",
+ pool->pool_name, i,
+ obd_uuid2str(&((pool_tgt(pool, i))->ltd_uuid)));
}
read_unlock(&pool_tgt_rwlock(pool));
}
lov = &(obd->u.lov);
- if (strlen(poolname) > MAXPOOLNAME)
+ if (strlen(poolname) > LOV_MAXPOOLNAME)
return -ENAMETOOLONG;
OBD_ALLOC_PTR(new_pool);
if (new_pool == NULL)
return -ENOMEM;
- strncpy(new_pool->pool_name, poolname, MAXPOOLNAME);
- new_pool->pool_name[MAXPOOLNAME] = '\0';
+ strncpy(new_pool->pool_name, poolname, LOV_MAXPOOLNAME);
+ new_pool->pool_name[LOV_MAXPOOLNAME] = '\0';
new_pool->pool_lov = lov;
rc = lov_ost_pool_init(&new_pool->pool_obds, 0);
if (rc)
lov->lov_pool_count++;
spin_unlock(&obd->obd_dev_lock);
- CDEBUG(D_CONFIG, POOLNAMEF" is pool #%d\n",
+ CDEBUG(D_CONFIG, LOV_POOLNAMEF" is pool #%d\n",
poolname, lov->lov_pool_count);
#ifdef LPROCFS
#endif
if (IS_ERR(new_pool->pool_proc_entry)) {
- CWARN("Cannot add proc pool entry "POOLNAMEF"\n", poolname);
+ CWARN("Cannot add proc pool entry "LOV_POOLNAMEF"\n", poolname);
new_pool->pool_proc_entry = NULL;
}
pool->pool_rr.lqr_dirty = 1;
- CDEBUG(D_CONFIG, "Added %s to "POOLNAMEF" as member %d\n",
+ CDEBUG(D_CONFIG, "Added %s to "LOV_POOLNAMEF" as member %d\n",
ostname, poolname, pool_tgt_count(pool));
return 0;
}
pool->pool_rr.lqr_dirty = 1;
- CDEBUG(D_CONFIG, "%s removed from "POOLNAMEF"\n", ostname, poolname);
+ CDEBUG(D_CONFIG, "%s removed from "LOV_POOLNAMEF"\n", ostname, poolname);
return 0;
}
if (poolname[0] != '\0') {
pool = lustre_hash_lookup(lov->lov_pools_hash_body, poolname);
if (pool == NULL)
- CWARN("Request for an unknown pool ("POOLNAMEF")\n",
+ CWARN("Request for an unknown pool ("LOV_POOLNAMEF")\n",
poolname);
if ((pool != NULL) && (pool_tgt_count(pool) == 0)) {
- CWARN("Request for an empty pool ("POOLNAMEF")\n",
+ CWARN("Request for an empty pool ("LOV_POOLNAMEF")\n",
poolname);
pool = NULL;
}
if (fsname == NULL)
RETURN(-ENOMEM);
- OBD_ALLOC(poolname, MAXPOOLNAME + 1);
+ OBD_ALLOC(poolname, LOV_MAXPOOLNAME + 1);
if (poolname == NULL) {
rc = -ENOMEM;
GOTO(out_pool, rc);
OBD_FREE(fsname, MTI_NAME_MAXLEN);
if (poolname != NULL)
- OBD_FREE(poolname, MAXPOOLNAME + 1);
+ OBD_FREE(poolname, LOV_MAXPOOLNAME + 1);
RETURN(rc);
}
void dump_lsm(int level, struct lov_stripe_md *lsm)
{
CDEBUG(level, "lsm %p, objid "LPX64", maxbytes "LPX64", magic 0x%08X, "
- "stripe_size %u, stripe_count %u pool "POOLNAMEF"\n", lsm,
+ "stripe_size %u, stripe_count %u pool "LOV_POOLNAMEF"\n", lsm,
lsm->lsm_object_id, lsm->lsm_maxbytes, lsm->lsm_magic,
lsm->lsm_stripe_size, lsm->lsm_stripe_count,
lsm->lsm_pool_name);
break;
case FIND_POOL_OPT:
new_fashion = 1;
- if (strlen(optarg) > MAXPOOLNAME) {
+ if (strlen(optarg) > LOV_MAXPOOLNAME) {
fprintf(stderr,
"Pool name %s is too long"
" (max is %d)\n", optarg,
- MAXPOOLNAME);
+ LOV_MAXPOOLNAME);
return -1;
}
/* we do check for empty pool because empty pool
* is used to find V1 lov attributes */
- strncpy(param.poolname, optarg, MAXPOOLNAME);
- param.poolname[MAXPOOLNAME] = '\0';
+ strncpy(param.poolname, optarg, LOV_MAXPOOLNAME);
+ param.poolname[LOV_MAXPOOLNAME] = '\0';
param.exclude_pool = !!neg_opt;
param.check_pool = 1;
break;
if (poolpath(fsname, NULL, NULL) == 0)
pool_name = ptr + 1;
}
- strncpy(lum.lmm_pool_name, pool_name, MAXPOOLNAME);
+ strncpy(lum.lmm_pool_name, pool_name, LOV_MAXPOOLNAME);
} else {
/* If no pool is specified at all, use V1 request */
lum.lmm_magic = LOV_USER_MAGIC_V1;
(param->verbose || !param->obduuid));
break;
case LOV_USER_MAGIC_V3: {
- char pool_name[MAXPOOLNAME + 1];
+ char pool_name[LOV_MAXPOOLNAME + 1];
struct lov_user_ost_data_v1 *objects;
struct lov_user_md_v3 *lmmv3 = (void *)¶m->lmd->lmd_lmm;
- strncpy(pool_name, lmmv3->lmm_pool_name, MAXPOOLNAME);
- pool_name[MAXPOOLNAME] = '\0';
+ strncpy(pool_name, lmmv3->lmm_pool_name, LOV_MAXPOOLNAME);
+ pool_name[LOV_MAXPOOLNAME] = '\0';
objects = lmmv3->lmm_objects;
lov_dump_user_lmm_v1v3(¶m->lmd->lmd_lmm, pool_name,
objects, path, is_dir,
(param->poolname[0] == '\0')) ||
((param->lmd->lmd_lmm.lmm_magic == LOV_USER_MAGIC_V3) &&
(strncmp(lmmv3->lmm_pool_name,
- param->poolname, MAXPOOLNAME) == 0)) ||
+ param->poolname, LOV_MAXPOOLNAME) == 0)) ||
((param->lmd->lmd_lmm.lmm_magic == LOV_USER_MAGIC_V3) &&
(strcmp(param->poolname, "*") == 0))) {
if (param->exclude_pool)
rc = -EINVAL;
goto err;
}
- if (len > MAXPOOLNAME) {
+ if (len > LOV_MAXPOOLNAME) {
fprintf(stderr,
"poolname %s is too long (length is %d max is %d)\n",
- ptr + 1, len, MAXPOOLNAME);
+ ptr + 1, len, LOV_MAXPOOLNAME);
rc = -ENAMETOOLONG;
goto err;
}
- strncpy(poolname, ptr + 1, MAXPOOLNAME);
- poolname[MAXPOOLNAME] = '\0';
+ strncpy(poolname, ptr + 1, LOV_MAXPOOLNAME);
+ poolname[LOV_MAXPOOLNAME] = '\0';
*ptr = '\0';
return 0;
{
enum lcfg_command_type cmd;
char fsname[PATH_MAX + 1];
- char poolname[MAXPOOLNAME + 1];
+ char poolname[LOV_MAXPOOLNAME + 1];
char *ostnames_buf = NULL;
int i, rc;
int *array = NULL, array_sz;