le32_to_cpu(lmv_src->lmv_master_mdt_index);
lmv_dst->lmv_hash_type = le32_to_cpu(lmv_src->lmv_hash_type);
lmv_dst->lmv_layout_version = le32_to_cpu(lmv_src->lmv_layout_version);
+ if (lmv_src->lmv_stripe_count > LMV_MAX_STRIPE_COUNT)
+ return;
for (i = 0; i < lmv_src->lmv_stripe_count; i++)
fid_le_to_cpu(&lmv_dst->lmv_stripe_fids[i],
&lmv_src->lmv_stripe_fids[i]);
lmm1 = &lmv->lmv_md_v1;
CDEBUG(level,
- "magic 0x%08X, master %#X stripe_count %#x hash_type %#x\n",
+ "magic 0x%08X, master %#X stripe_count %d hash_type %#x\n",
le32_to_cpu(lmm1->lmv_magic),
le32_to_cpu(lmm1->lmv_master_mdt_index),
le32_to_cpu(lmm1->lmv_stripe_count),
if (le32_to_cpu(lmm1->lmv_magic) == LMV_MAGIC_STRIPE)
return;
+ if (le32_to_cpu(lmm1->lmv_stripe_count) > LMV_MAX_STRIPE_COUNT)
+ return;
+
for (i = 0; i < le32_to_cpu(lmm1->lmv_stripe_count); i++) {
struct lu_fid fid;
echo "checking $dirname $default_count $default_index"
$LFS setdirstripe -D -c $default_count -i $default_index \
- -t all_char $DIR/$tdir/$dirname ||
+ -H all_char $DIR/$tdir/$dirname ||
error "set default stripe on striped dir error"
stripe_count=$($LFS getdirstripe -D -c $DIR/$tdir/$dirname)
[ $stripe_count -eq $default_count ] ||
unlinkmany $DIR/$tdir/$dirname/f- 10 || error "unlink files failed"
for dir in $(find $DIR/$tdir/$dirname/*); do
stripe_count=$($LFS getdirstripe -c $dir)
- [ $stripe_count -eq $default_count ] ||
- [ $stripe_count -eq 0 ] || [ $default_count -eq 1 ] ||
+ (( $stripe_count == $default_count )) ||
+ (( $stripe_count == $MDSCOUNT && $default_count == -1 )) ||
+ (( $stripe_count == 0 )) || (( $default_count == 1 )) ||
error "stripe count $default_count != $stripe_count for $dir"
stripe_index=$($LFS getdirstripe -i $dir)
#check default stripe count/stripe index
test_300_check_default_striped_dir normal_dir $MDSCOUNT 1
test_300_check_default_striped_dir normal_dir 1 0
- test_300_check_default_striped_dir normal_dir 2 1
+ test_300_check_default_striped_dir normal_dir -1 1
test_300_check_default_striped_dir normal_dir 2 -1
#delete default stripe information
test_300_check_default_striped_dir striped_dir $MDSCOUNT 1
test_300_check_default_striped_dir striped_dir 1 0
- test_300_check_default_striped_dir striped_dir 2 1
+ test_300_check_default_striped_dir striped_dir -1 1
test_300_check_default_striped_dir striped_dir 2 -1
#delete default stripe information
llapi_printf(LLAPI_MSG_NORMAL, "%s", separator);
if (verbose & ~VERBOSE_STRIPE_COUNT)
llapi_printf(LLAPI_MSG_NORMAL, "lmv_stripe_count: ");
- llapi_printf(LLAPI_MSG_NORMAL, "%u",
+ llapi_printf(LLAPI_MSG_NORMAL, "%d",
(int)lum->lum_stripe_count);
if ((verbose & VERBOSE_STRIPE_OFFSET) && !yaml)
separator = " ";