{
if (flags & (LDD_F_SV_TYPE_MDT | LDD_F_SV_TYPE_OST)) {
if (!(flags & LDD_F_SV_ALL))
- sprintf(name, "%.8s-%s%04x", fs,
- (flags & LDD_F_SV_TYPE_MDT) ? "MDT" : "OST",
- index);
+ sprintf(name, "%.8s%c%s%04x", fs,
+ (flags & LDD_F_VIRGIN) ? ':' : '-',
+ (flags & LDD_F_SV_TYPE_MDT) ? "MDT" : "OST",
+ index);
} else if (flags & LDD_F_SV_TYPE_MGS) {
sprintf(name, "MGS");
} else {
cfs_set_bit(mti->mti_stripe_index, imap);
cfs_clear_bit(FSDB_LOG_EMPTY, &fsdb->fsdb_flags);
- server_make_name(mti->mti_flags, mti->mti_stripe_index,
+ server_make_name(mti->mti_flags & ~LDD_F_VIRGIN, mti->mti_stripe_index,
mti->mti_fsname, mti->mti_svname);
CDEBUG(D_MGS, "Set index for %s to %d\n", mti->mti_svname,
GOTO(out_close, rc = -EINVAL);
}
+ /* svname of the form lustre:OST1234 means never registered */
+ rc = strlen(ldd->ldd_svname);
+ if (ldd->ldd_svname[rc - 8] == ':') {
+ ldd->ldd_svname[rc - 8] = '-';
+ ldd->ldd_flags |= LDD_F_VIRGIN;
+ }
+ rc = 0;
+
out_close:
filp_close(file, 0);
out:
ldd->ldd_fsname[len] = '\0';
ldd->ldd_svindex = simple_strtoul(p + 4, NULL, 16);
- ldd->ldd_flags |= LDD_F_WRITECONF;
+ ldd->ldd_flags |= (lsi->lsi_lmd->lmd_flags & LMD_FLG_WRITECONF) ?
+ LDD_F_WRITECONF : 0;
lsi->lsi_ldd = ldd;