freebsd-nq/sys/geom
Kenneth D. Merry ce625ec719 Change the way that unmapped I/O capability is advertised.
The previous method was to set the D_UNMAPPED_IO flag in the cdevsw
for the driver.  The problem with this is that in many cases (e.g.
sa(4)) there may be some instances of the driver that can handle
unmapped I/O and some that can't.  The isp(4) driver can handle
unmapped I/O, but the esp(4) driver currently cannot.  The cdevsw
is shared among all driver instances.

So instead of setting a flag on the cdevsw, set a flag on the cdev.
This allows drivers to indicate support for unmapped I/O on a
per-instance basis.

sys/conf.h:	Remove the D_UNMAPPED_IO cdevsw flag and replace it
		with an SI_UNMAPPED cdev flag.

kern_physio.c:	Look at the cdev SI_UNMAPPED flag to determine
		whether or not a particular driver can handle
		unmapped I/O.

geom_dev.c:	Set the SI_UNMAPPED flag for all GEOM cdevs.
		Since GEOM will create a temporary mapping when
		needed, setting SI_UNMAPPED unconditionally will
		work.

		Remove the D_UNMAPPED_IO flag.

nvme_ns.c:	Set the SI_UNMAPPED flag on cdevs created here
		if NVME_UNMAPPED_BIO_SUPPORT is enabled.

vfs_aio.c:	In aio_qphysio(), check the SI_UNMAPPED flag on a
		cdev instead of the D_UNMAPPED_IO flag on the cdevsw.

sys/param.h:	Bump __FreeBSD_version to 1000045 for the switch from
		setting the D_UNMAPPED_IO flag in the cdevsw to setting
		SI_UNMAPPED in the cdev.

Reviewed by:	kib, jimharris
MFC after:	1 week
Sponsored by:	Spectra Logic
2013-08-15 22:52:39 +00:00
..
bde - Don't pass geom and provider names as format strings. 2012-11-20 12:32:18 +00:00
cache - Don't pass geom and provider names as format strings. 2012-11-20 12:32:18 +00:00
concat Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
eli Always initialize sc_ekey, because as of r238116 it is always used. 2012-08-10 18:43:29 +00:00
gate Remove extra bio_data and bio_length copying to child request after calling 2013-03-26 05:42:12 +00:00
journal When panicing due to the gjournal overflow, print the geom metadata 2013-07-10 10:11:43 +00:00
label - Use int8_t type for the mftrecsz field in g_label_ntfs. char type 2013-05-05 08:00:16 +00:00
linux_lvm Add some FEATURE macros for various GEOM classes. 2011-02-25 10:24:35 +00:00
mirror Fix the formatting of the error message. 2013-08-12 18:17:45 +00:00
mountver - Don't pass geom and provider names as format strings. 2012-11-20 12:32:18 +00:00
multipath Make GEOM MULTIPATH to report unmapped bio support if underling path report 2013-03-25 07:24:58 +00:00
nop move the error report to a lower log level... Now you can see when it 2013-04-13 19:02:58 +00:00
part gpt_entries is used as limit for the number of partition entries in 2013-08-08 16:09:20 +00:00
raid Return error when opening read-only volumes (like RAID4/5/...) for writing. 2013-08-13 07:56:40 +00:00
raid3 Allow to insert new component to geom_raid3 without specifying number. 2013-01-15 10:06:35 +00:00
sched - Don't pass geom and provider names as format strings. 2012-11-20 12:32:18 +00:00
shsec Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
stripe Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
uncompress Remove unneeded G_PF_CANDELETE flag. 2012-08-28 19:28:31 +00:00
uzip Remove unneeded G_PF_CANDELETE flag. 2012-08-28 19:28:31 +00:00
vinum Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
virstor In virstor_ctl_stop(), check for a valid softc before trying to update 2012-08-03 20:24:16 +00:00
zero Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
geom_aes.c - Don't pass geom and provider names as format strings. 2012-11-20 12:32:18 +00:00
geom_bsd_enc.c
geom_bsd.c Avoid to check the same cache line/variable from all the locking 2012-01-28 14:00:21 +00:00
geom_ccd.c Include sys/sbuf.h directly. 2011-07-11 05:22:31 +00:00
geom_ctl.c Finish r210923, 210926. Mark some devices as eternal. 2011-01-04 10:59:38 +00:00
geom_ctl.h
geom_dev.c Change the way that unmapped I/O capability is advertised. 2013-08-15 22:52:39 +00:00
geom_disk.c Bump disk(9) ABI version to signify the addition of d_delmaxsize by r249940. 2013-07-03 23:46:30 +00:00
geom_disk.h Bump disk(9) ABI version to signify the addition of d_delmaxsize by r249940. 2013-07-03 23:46:30 +00:00
geom_dump.c Remove an extra semicolon from the DOT language output. 2013-05-21 18:40:54 +00:00
geom_event.c Make g_wither_washer() to not loop by itself, but only when there was some 2013-03-24 03:15:20 +00:00
geom_flashmap.c MFP4 @222836 2013-05-30 01:19:02 +00:00
geom_fox.c Add some FEATURE macros for various GEOM classes. 2011-02-25 10:24:35 +00:00
geom_int.h Make g_wither_washer() to not loop by itself, but only when there was some 2013-03-24 03:15:20 +00:00
geom_io.c - Add a general purpose resource allocator, vmem, from NetBSD. It was 2013-06-28 03:51:20 +00:00
geom_kern.c Move the three geom kprocs as threads under a single pid. 2011-05-11 21:47:30 +00:00
geom_map.c Use %j to match intmax_t. 2012-07-01 05:22:13 +00:00
geom_mbr_enc.c
geom_mbr.c - Don't pass geom and provider names as format strings. 2012-11-20 12:32:18 +00:00
geom_pc98_enc.c
geom_pc98.c Change <sys/diskpc98.h> to not redefine the same symbols that are 2013-08-07 00:00:48 +00:00
geom_redboot.c
geom_slice.c geom_slice.c and its consumers like GEOM_LABEL are not touching the data 2013-03-26 07:55:24 +00:00
geom_slice.h - Don't pass geom and provider names as format strings. 2012-11-20 12:32:18 +00:00
geom_subr.c Make g_wither_washer() to not loop by itself, but only when there was some 2013-03-24 03:15:20 +00:00
geom_sunlabel_enc.c
geom_sunlabel.c Include sys/sbuf.h directly. 2011-07-11 05:22:31 +00:00
geom_vfs.c Implement the concept of the unmapped VMIO buffers, i.e. buffers which 2013-03-19 14:13:12 +00:00
geom_vfs.h
geom_vol_ffs.c Add some FEATURE macros for various GEOM classes. 2011-02-25 10:24:35 +00:00
geom.h Implement the concept of the unmapped VMIO buffers, i.e. buffers which 2013-03-19 14:13:12 +00:00
notes