svn commit: r256884 - in head: share/man/man9 sys/geom

John Baldwin jhb at freebsd.org
Tue Oct 22 18:47:37 UTC 2013


On Tuesday, October 22, 2013 6:21:21 am Alexander Motin wrote:
> Author: mav
> Date: Tue Oct 22 10:21:20 2013
> New Revision: 256884
> URL: http://svnweb.freebsd.org/changeset/base/256884
> 
> Log:
>   Remove Giant-locked drivers support (DISKFLAG_NEEDSGIANT flag) from disk(9).
>   
>   Since at least FreeBSD 7 we had only four of them in the base tree, and
>   in head branch, thanks to jhb@, we have no any for more then a year.

I had this additional change in my local branch, what do you think of it?  We
should probably keep it unless we bump DISK_VERSION and drop support for older
disk structures.  I think we could probably merge it to 10 along with your
change as well:

--- //depot/vendor/freebsd/src/sys/geom/geom_disk.c
+++ //depot/user/jhb/cleanup/sys/geom/geom_disk.c
@@ -654,6 +654,13 @@
 		    dp->d_name, dp->d_unit);
 		return;
 	}
+	if (dp->d_flags & DISKFLAG_RESERVED) {
+		printf("WARNING: Attempt to add non-MPSAFE disk %s%d\n",
+		    dp->d_name, dp->d_unit);
+		printf("WARNING: Ignoring disk %s%d\n",
+		    dp->d_name, dp->d_unit);
+		return;
+	}
 	KASSERT(dp->d_strategy != NULL, ("disk_create need d_strategy"));
 	KASSERT(dp->d_name != NULL, ("disk_create need d_name"));
 	KASSERT(*dp->d_name != 0, ("disk_create need d_name"));
--- //depot/vendor/freebsd/src/sys/geom/geom_disk.h
+++ //depot/user/jhb/cleanup/sys/geom/geom_disk.h
@@ -102,6 +102,7 @@
 	void			*d_drv1;
 };
 
+#define DISKFLAG_RESERVED	0x1	/* Was NEEDSGIANT */
 #define DISKFLAG_OPEN		0x2
 #define DISKFLAG_CANDELETE	0x4
 #define DISKFLAG_CANFLUSHCACHE	0x8

-- 
John Baldwin


More information about the svn-src-all mailing list