}
run_test 73b "Large failnode NID list in mountdata"
+test_73d() { #LU-18896
+ (( $OST1_VERSION >= $(version_code 2.16.53) )) ||
+ skip "need OST >= 2.16.53 for LU-18896 fix"
+ [[ "$ost1_FSTYPE" == zfs ]] && import_zpool ost1
+
+ local ostdev=$(ostdevname 1)
+
+ # add bogus param to mountdata
+ do_facet ost1 "$TUNEFS --erase-params \
+ --param=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=1 $ostdev"
+ do_facet ost1 "$TUNEFS --erase-params --mgsnode=10.23.7.1@tcp \
+ --mgsnode=10.23.7.2@tcp $ostdev"
+ bad=$(do_facet ost1 "$TUNEFS --erase-params" $ostdev | grep -c "xx=1")
+ reformat
+
+ (( bad == 0 )) || error "garbage in params"
+}
+run_test 73d "erase + new parameter doesn't corrupt mountdata"
+
# LU-15246
test_74() {
(( $MDS1_VERSION >= $(version_code 2.15.57.16) )) ||
int append_param(char *buf, char *key, char *val, char sep)
{
- char *ptr = NULL, *next, *cur;
+ char *ptr = NULL, *next;
int bufsize = MAXNIDSTR;
int buflen = strlen(buf), vallen = strlen(val);
}
next = strchrnul(ptr, ' ');
- cur = buf + buflen;
- /* shift tail further at vallen + sep */
- while (cur-- > next)
- *(cur + vallen + 1) = *cur;
+ /* shift all after 'next' further at vallen + sep */
+ memmove(next + vallen + 1, next, strlen(next) + 1);
/* fill gap with sep + new values */
*next = sep;