Am Mon, 13 Feb 2017 17:44:07 +0000 (UTC) "Stephen J. Kiernan" <ste...@freebsd.org> schrieb:
> Author: stevek > Date: Mon Feb 13 17:44:07 2017 > New Revision: 313701 > URL: https://svnweb.freebsd.org/changeset/base/313701 > > Log: > For MD_PRELOAD type md(4) devices, if there is a file name in the preloaded > meta-data, copy it into the softc structure. > > When returning md(4) device details to the caller, include the file name in > any MD_PRELOAD type devices if it is set (first character is not NUL.) > > In mdconfig, for "preload" type md(4) devices, if there is file config > available, print it in the file column of the output. > > Reviewed by: brooks > Approved by: sjg (mentor) > MFC after: 1 month > Sponsored by: Juniper Networks, Inc. > Differential Revision: https://reviews.freebsd.org/D9529 > > Modified: > head/sbin/mdconfig/mdconfig.c > head/sys/dev/md/md.c > > Modified: head/sbin/mdconfig/mdconfig.c > ============================================================================== > --- head/sbin/mdconfig/mdconfig.c Mon Feb 13 16:11:37 2017 > (r313700) > +++ head/sbin/mdconfig/mdconfig.c Mon Feb 13 17:44:07 2017 > (r313701) > @@ -452,7 +452,8 @@ md_list(const char *units, int opt, cons > } > gc = &pp->lg_config; > type = geom_config_get(gc, "type"); > - if (strcmp(type, "vnode") == 0) { > + if (strcmp(type, "vnode") == 0 || > + strcmp(type, "preload") == 0) { > file = geom_config_get(gc, "file"); > if (fflag != NULL && > strcmp(fflag, file) != 0) > > Modified: head/sys/dev/md/md.c > ============================================================================== > --- head/sys/dev/md/md.c Mon Feb 13 16:11:37 2017 (r313700) > +++ head/sys/dev/md/md.c Mon Feb 13 17:44:07 2017 (r313701) > @@ -1689,7 +1689,8 @@ xmdctlioctl(struct cdev *dev, u_long cmd > mdio->md_options = sc->flags; > mdio->md_mediasize = sc->mediasize; > mdio->md_sectorsize = sc->sectorsize; > - if (sc->type == MD_VNODE) > + if (sc->type == MD_VNODE || > + (sc->type == MD_PRELOAD && mdio->md_file != NULL)) > error = copyout(sc->file, mdio->md_file, > strlen(sc->file) + 1); > return (error); > @@ -1733,6 +1734,8 @@ md_preloaded(u_char *image, size_t lengt > sc->pl_ptr = image; > sc->pl_len = length; > sc->start = mdstart_preload; > + if (name != NULL) > + strlcpy(sc->file, name, sizeof(sc->file)); > #if defined(MD_ROOT) && !defined(ROOTDEVNAME) > if (sc->unit == 0) > rootdevnames[0] = MD_ROOT_FSTYPE ":/dev/md0"; > @@ -1835,7 +1838,8 @@ g_md_dumpconf(struct sbuf *sb, const cha > sbuf_printf(sb, " fs %ju", (uintmax_t) mp->fwsectors); > sbuf_printf(sb, " l %ju", (uintmax_t) mp->mediasize); > sbuf_printf(sb, " t %s", type); > - if (mp->type == MD_VNODE && mp->vnode != NULL) > + if ((mp->type == MD_VNODE && mp->vnode != NULL) || > + (mp->type == MD_PRELOAD && mp->file[0] != '\0')) > sbuf_printf(sb, " file %s", mp->file); > } else { > sbuf_printf(sb, "%s<unit>%d</unit>\n", indent, > @@ -1855,7 +1859,8 @@ g_md_dumpconf(struct sbuf *sb, const cha > "read-only"); > sbuf_printf(sb, "%s<type>%s</type>\n", indent, > type); > - if (mp->type == MD_VNODE && mp->vnode != NULL) { > + if ((mp->type == MD_VNODE && mp->vnode != NULL) || > + (mp->type == MD_PRELOAD && mp->file[0] != '\0')) > sbuf_printf(sb, "%s<file>", indent); > g_conf_printf_escaped(sb, "%s", mp->file); > sbuf_printf(sb, "</file>\n"); > _______________________________________________ > svn-src-head@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/svn-src-head > To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org" This broke kernel build on recent CURRENT: [...] ===> mdio (all) --- all_subdir_md --- --- md.o --- /usr/src/sys/modules/md/../../dev/md/md.c:1870:1: error: extraneous closing brace ('}') } ^ 1 error generated. *** [md.o] Error code 1 make[4]: stopped in /usr/src/sys/modules/md Kind regards, Oliver
pgpT2UIPeI4ox.pgp
Description: OpenPGP digital signature