freebsd-skq/sys/geom
Gleb Smirnoff d89862ac87 Make geom_mirror more friendly to SSDs. To properly support TRIM,
we need to pass BIO_DELETE requests down to providers that support
it. Also, we need to announce our support for BIO_DELETE to upper
consumer. This requires:

- In g_mirror_start() return true for "GEOM::candelete" request.
- In g_mirror_init_disk() probe below provider for "GEOM::candelete"
  attribute, and mark disk with a flag if it does support BIO_DELETE.
- In g_mirror_register_request() distribute BIO_DELETE requests only
  to those disks, that do support it.

Note that we announce "GEOM::candelete" as true unconditionally of
whether we have TRIM-capable media down below or not. This is made
intentionally, because upper consumer (usually UFS) requests the
attribite only once at mount time. And if user ever migrates his
mirror from HDDs to SSDs, then he/she would get TRIM working without
remounting filesystem.

Reviewed by:	pjd
2012-07-01 15:43:52 +00:00
..
bde Add some FEATURE macros for various GEOM classes. 2011-02-25 10:24:35 +00:00
cache Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
concat Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
eli Add missing period at the end of the error message 2012-05-13 23:27:06 +00:00
gate Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
journal Current implementations of sync(2) and syncer vnode fsync() VOP uses 2012-02-06 11:04:36 +00:00
label Revert r235918 for now and add comment explaining the reason for the 2012-05-25 10:08:48 +00:00
linux_lvm Add some FEATURE macros for various GEOM classes. 2011-02-25 10:24:35 +00:00
mirror Make geom_mirror more friendly to SSDs. To properly support TRIM, 2012-07-01 15:43:52 +00:00
mountver Avoid to check the same cache line/variable from all the locking 2012-01-28 14:00:21 +00:00
multipath Add missing newlines into XML output. 2012-06-05 16:46:34 +00:00
nop Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
part Always reconstruct partition entries in the PMBR when Boot Camp is 2012-06-14 11:17:54 +00:00
raid - Prevent error status leak if write to some of the RAID1/1E volume disks 2012-05-11 13:20:17 +00:00
raid3 Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
sched Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +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 GEOM_UNCOMPRESS module, can be used with uzip images and with new ulzma images. 2012-01-04 23:39:11 +00:00
uzip Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
vinum Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
virstor Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +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
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 Temporary revert r227009 to fix freeze on UP systems without PREEMPTION. 2011-11-14 19:32:05 +00:00
geom_disk.c In g_disk_providergone(), don't continue if the softc is NULL. This may be 2012-06-27 16:05:09 +00:00
geom_disk.h Fix a bug which causes a panic in daopen(). The panic is caused by 2012-06-24 04:29:03 +00:00
geom_dump.c Do not hide stripeoffset from libgeom(3), it may be useful even when 2011-06-02 12:49:45 +00:00
geom_event.c Workaround the problem introduced by combination of r162200 and r215687. 2011-11-01 08:57:49 +00:00
geom_flashmap.c - Correct signedness for casts; 2012-05-23 20:51:21 +00:00
geom_fox.c Add some FEATURE macros for various GEOM classes. 2011-02-25 10:24:35 +00:00
geom_int.h
geom_io.c Correct bioq_disksort so that bioq_insert_tail() offers barrier semantic. 2010-09-02 19:40:28 +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 Avoid to check the same cache line/variable from all the locking 2012-01-28 14:00:21 +00:00
geom_pc98_enc.c
geom_pc98.c Avoid to check the same cache line/variable from all the locking 2012-01-28 14:00:21 +00:00
geom_redboot.c - Give geom_redboot taste of flash/spi. Now there is another provider 2010-02-03 01:12:19 +00:00
geom_slice.c Change the way in which zero stripesize is handled. Instead of reporting 2010-01-06 13:14:37 +00:00
geom_slice.h
geom_subr.c Fix a bug which causes a panic in daopen(). The panic is caused by 2012-06-24 04:29:03 +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 Expand locking around identification of filesystem mount point when 2012-04-08 06:20:21 +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 Consume spare fields for the providergone pointers added to the g_class and 2012-06-25 04:26:10 +00:00
notes