Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Sep 2015 21:08:53 +0000 (UTC)
From:      "Conrad E. Meyer" <cem@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r288153 - head/sys/geom
Message-ID:  <201509232108.t8NL8rac041893@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: cem
Date: Wed Sep 23 21:08:52 2015
New Revision: 288153
URL: https://svnweb.freebsd.org/changeset/base/288153

Log:
  geom_dev: Use kenv 'dumpdev' in the same way as rc/etc.d/dumpon
  
  Skip a /dev/ prefix, if one is present, when checking for matching
  device names for dump.
  
  Suggested by:	avg
  Reviewed by:	markj
  Sponsored by:	EMC / Isilon Storage Division
  Differential Revision:	https://reviews.freebsd.org/D3725

Modified:
  head/sys/geom/geom_dev.c

Modified: head/sys/geom/geom_dev.c
==============================================================================
--- head/sys/geom/geom_dev.c	Wed Sep 23 20:46:23 2015	(r288152)
+++ head/sys/geom/geom_dev.c	Wed Sep 23 21:08:52 2015	(r288153)
@@ -124,6 +124,7 @@ g_dev_fini(struct g_class *mp)
 {
 
 	freeenv(dumpdev);
+	dumpdev = NULL;
 }
 
 static int
@@ -152,10 +153,16 @@ g_dev_setdumpdev(struct cdev *dev, struc
 static void
 init_dumpdev(struct cdev *dev)
 {
+	const char *devprefix = "/dev/", *devname;
+	size_t len;
 
 	if (dumpdev == NULL)
 		return;
-	if (strcmp(devtoname(dev), dumpdev) != 0)
+	len = strlen(devprefix);
+	devname = devtoname(dev);
+	if (strcmp(devname, dumpdev) != 0 &&
+	   (strncmp(dumpdev, devprefix, len) != 0 ||
+	    strcmp(devname, dumpdev + len) != 0))
 		return;
 	if (g_dev_setdumpdev(dev, curthread) == 0) {
 		freeenv(dumpdev);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201509232108.t8NL8rac041893>