local fs2ostdev=$(ostdevname 1_2)
local fs2mdsvdev=$(mdsvdevname 1_2)
local fs2ostvdev=$(ostvdevname 1_2)
+ local cl_user
- # test 8-char fsname as well
- local FSNAME2=test1234
+ # LU-9733 test fsname started with numbers as well
+ local FSNAME2=969362ae
add fs2mds $(mkfs_opts mds1 ${fs2mdsdev} ) --nomgs --mgsnode=$MGSNID \
--fsname=${FSNAME2} --reformat $fs2mdsdev $fs2mdsvdev || exit 10
start fs2ost $fs2ostdev $OST_MOUNT_OPTS
mkdir -p $MOUNT2 || error "mkdir $MOUNT2 failed"
$MOUNT_CMD $MGSNID:/${FSNAME2} $MOUNT2 || error "$MOUNT_CMD failed"
+
+ # LU-9733 test fsname started with numbers
+ cl_user=$(do_facet $SINGLEMDS lctl --device $FSNAME2-MDT0000 \
+ changelog_register -n) ||
+ error "register changelog failed"
+
+ do_facet $SINGLEMDS lctl --device $FSNAME2-MDT0000 \
+ changelog_deregister $cl_user ||
+ error "deregister changelog failed"
# 1 still works
check_mount || error "check_mount failed"
# files written on 1 should not show up on 2
*/
int parse_devname(char *func, char *name)
{
- int rc;
- int ret = -1;
+ int rc;
+ int ret = -1;
+ int try_digit;
+
+ if (!name)
+ return ret;
+
+ try_digit = isdigit(name[0]);
+
+ if (name[0] == '$' || name[0] == '%')
+ name++;
+
+ rc = do_name2dev(func, name);
+ if (rc >= N2D_OFF)
+ return rc - N2D_OFF;
- if (!name)
- return ret;
- if (isdigit(name[0])) {
+ if (try_digit)
ret = strtoul(name, NULL, 0);
- } else {
- if (name[0] == '$' || name[0] == '%')
- name++;
- rc = do_name2dev(func, name);
- if (rc >= N2D_OFF) {
- ret = rc - N2D_OFF;
- // printf("Name %s is device %d\n", name, ret);
- } else {
- fprintf(stderr, "No device found for name %s: %s\n",
+ else
+ fprintf(stderr, "No device found for name %s: %s\n",
name, strerror(rc));
- }
- }
return ret;
}