__u32 lum_padding2;
__u32 lum_padding3;
char lum_pool_name[LOV_MAXPOOLNAME + 1];
- struct lmv_user_mds_data lum_objects[0];
+ struct lmv_user_mds_data lum_objects[];
} __attribute__((packed));
static inline __u32 lmv_foreign_to_md_stripes(__u32 size)
if (overstriped)
lmu->lum_hash_type |= LMV_HASH_FLAG_OVERSTRIPED;
- if (lsa.lsa_pool_name) {
- strncpy(lmu->lum_pool_name, lsa.lsa_pool_name,
- sizeof(lmu->lum_pool_name) - 1);
- lmu->lum_pool_name[sizeof(lmu->lum_pool_name) - 1] = 0;
- }
+ if (lsa.lsa_pool_name)
+ snprintf(lmu->lum_pool_name, sizeof(lmu->lum_pool_name),
+ "%s", lsa.lsa_pool_name);
if (lsa.lsa_nr_tgts > 1) {
int i;
* We do check for empty pool because empty pool
* is used to find V1 LOV attributes
*/
- strncpy(param.fp_poolname, optarg, LOV_MAXPOOLNAME);
- param.fp_poolname[LOV_MAXPOOLNAME] = '\0';
+ snprintf(param.fp_poolname, sizeof(param.fp_poolname),
+ "%s", optarg);
param.fp_exclude_pool = !!neg_opt;
param.fp_check_pool = 1;
break;
case LFS_POOL_OPT:
if (lfs_verify_poolarg(optarg))
return -1;
- strncpy(qctl->qc_poolname, optarg, LOV_MAXPOOLNAME);
+ snprintf(qctl->qc_poolname, LOV_MAXPOOLNAME + 1, "%s",
+ optarg);
qctl->qc_cmd = LUSTRE_Q_SETINFOPOOL;
break;
case 't': /* Yes, of course! */
rc = -1;
goto out;
}
- strncpy(qctl->qc_poolname, optarg, LOV_MAXPOOLNAME);
+ snprintf(qctl->qc_poolname, LOV_MAXPOOLNAME + 1, "%s",
+ optarg);
qctl->qc_cmd = qctl->qc_cmd == LUSTRE_Q_SETDEFAULT ?
LUSTRE_Q_SETDEFAULT_POOL :
LUSTRE_Q_SETQUOTAPOOL;
if (qctl->qc_cmd == LUSTRE_Q_SETQUOTAPOOL) {
tmp_qctl->qc_cmd = LUSTRE_Q_GETQUOTAPOOL;
- strncpy(tmp_qctl->qc_poolname, qctl->qc_poolname,
- LOV_MAXPOOLNAME);
+ snprintf(tmp_qctl->qc_poolname, LOV_MAXPOOLNAME + 1,
+ "%s", qctl->qc_poolname);
} else {
tmp_qctl->qc_cmd = LUSTRE_Q_GETQUOTA;
}
rc = -EINVAL;
goto out;
}
- strncpy(qctl->qc_poolname, optarg,
- LOV_MAXPOOLNAME);
+ snprintf(qctl->qc_poolname,
+ LOV_MAXPOOLNAME + 1, "%s", optarg);
if (qctl->qc_cmd == LUSTRE_Q_GETINFO)
qctl->qc_cmd = LUSTRE_Q_GETINFOPOOL;
else
}
p++;
printf("Quotas for pool: %s\n", p);
- strncpy(qctl->qc_poolname, p, LOV_MAXPOOLNAME);
+ snprintf(qctl->qc_poolname, LOV_MAXPOOLNAME + 1, "%s",
+ p);
rc = get_print_quota(mnt, name, qctl, verbose, quiet,
human_readable, show_default);
if (rc)
struct lov_user_md_v3 *lumv3 = (void *)lum;
lumv3->lmm_magic = LOV_USER_MAGIC_V3;
- strncpy(lumv3->lmm_pool_name, pool_name, LOV_MAXPOOLNAME);
+ snprintf(lumv3->lmm_pool_name, sizeof(lumv3->lmm_pool_name),
+ "%s", pool_name);
}
if (param->lsp_is_specific) {
struct lov_user_md_v3 *lumv3 = (void *)lum;
* OST list, therefore if pool is not specified we have
* to pack a null pool name for placeholder.
*/
- memset(lumv3->lmm_pool_name, 0, LOV_MAXPOOLNAME);
+ memset(lumv3->lmm_pool_name, 0,
+ sizeof(lumv3->lmm_pool_name));
}
for (i = 0; i < param->lsp_stripe_count; i++)
lmu->lum_hash_type = param->lsp_stripe_pattern;
lmu->lum_max_inherit = param->lsp_max_inherit;
lmu->lum_max_inherit_rr = param->lsp_max_inherit_rr;
- if (param->lsp_pool != NULL)
- strncpy(lmu->lum_pool_name, param->lsp_pool, LOV_MAXPOOLNAME);
if (param->lsp_is_specific) {
int i;
for (i = 0; i < param->lsp_stripe_count; i++)
lmu->lum_objects[i].lum_mds = param->lsp_tgts[i];
}
+ if (param->lsp_pool)
+ snprintf(lmu->lum_pool_name, sizeof(lmu->lum_pool_name), "%s",
+ param->lsp_pool);
}
int llapi_dir_set_default_lmv(const char *name,
(struct lov_user_md_v3 *)blob;
if (comp->llc_pool_name[0] != '\0') {
- strncpy(lumv3->lmm_pool_name,
- comp->llc_pool_name,
- sizeof(lumv3->lmm_pool_name));
+ snprintf(lumv3->lmm_pool_name,
+ sizeof(lumv3->lmm_pool_name), "%s",
+ comp->llc_pool_name);
} else {
memset(lumv3->lmm_pool_name, 0,
sizeof(lumv3->lmm_pool_name));
return -1;
}
- strncpy(dest, comp->llc_pool_name, n);
+ snprintf(dest, n, "%s", comp->llc_pool_name);
return 0;
}
return -1;
}
- strncpy(comp->llc_pool_name, pool_name, sizeof(comp->llc_pool_name));
+ snprintf(comp->llc_pool_name, sizeof(comp->llc_pool_name), "%s",
+ pool_name);
return 0;
}
*/
static bool llapi_layout_mirror_count_is_valid(uint16_t count)
{
- return count >= 0 && count <= LUSTRE_MIRROR_COUNT_MAX;
+ return count <= LUSTRE_MIRROR_COUNT_MAX;
}
/**
* component, the end of the previous component cannot be EOF.) */
if (llapi_layout_comp_extent_set(layout, last->llc_extent.e_end,
LUSTRE_EOF - 1)) {
- llapi_layout_comp_del(layout);
+ (void)llapi_layout_comp_del(layout);
layout->llot_is_composite = composite;
return -1;
}
new->llc_stripe_offset = comp->llc_stripe_offset;
if (comp->llc_pool_name[0] != '\0')
- strncpy(new->llc_pool_name, comp->llc_pool_name,
- sizeof(new->llc_pool_name));
+ snprintf(new->llc_pool_name, sizeof(new->llc_pool_name),
+ "%s", comp->llc_pool_name);
for (i = 0; i < comp->llc_objects_count; i++) {
if (__llapi_comp_objects_realloc(new,
return 0;
error:
llapi_layout_free(new_layout);
+ *dst_layout = NULL;
return -1;
}
lpld.lpld_exists = false;
strncpy(lpld.lpld_fsname, fsname, sizeof(lpld.lpld_fsname) - 1);
if (poolname && poolname[0])
- strncpy(lpld.lpld_poolname, poolname,
- sizeof(lpld.lpld_poolname) - 1);
+ snprintf(lpld.lpld_poolname, sizeof(lpld.lpld_poolname), "%s",
+ poolname);
snprintf(logname, sizeof(logname), "%s-client", fsname);
rc = jt_llog_print_iter(logname, 0, -1, llog_poollist_cb, &lpld, false,
false);
return -ENAMETOOLONG;
}
- strncpy(poolname, ptr, LOV_MAXPOOLNAME + 1);
+ snprintf(poolname, LOV_MAXPOOLNAME + 1, "%s", ptr);
if (lov_pool_is_reserved(poolname)) {
fprintf(stderr, "%s: poolname cannot be '%s'\n",
cmdname, poolname);