svn commit: r313701 - in head: sbin/mdconfig sys/dev/md

O. Hartmann ohartmann at walstatt.org
Mon Feb 13 18:24:15 UTC 2017


Am Mon, 13 Feb 2017 17:44:07 +0000 (UTC)
"Stephen J. Kiernan" <stevek at 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 at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/svn-src-head
> To unsubscribe, send any mail to "svn-src-head-unsubscribe at 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 313 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/svn-src-all/attachments/20170213/4c03d3da/attachment.sig>


More information about the svn-src-all mailing list