diff -r e2d38198dabf -r 448164dc52d1 distrib/sets/lists/base/ad.arm --- a/distrib/sets/lists/base/ad.arm Sun Mar 23 14:41:48 2014 -0400 +++ b/distrib/sets/lists/base/ad.arm Sun Mar 23 23:43:03 2014 -0400 @@ -92,7 +92,7 @@ ./usr/lib/oabi/libc++.so.1 base-compat-shlib compat,pic,libcxx ./usr/lib/oabi/libc++.so.1.0 base-compat-shlib compat,pic,libcxx ./usr/lib/oabi/libc.so.12 base-compat-shlib compat,pic -./usr/lib/oabi/libc.so.12.190 base-compat-shlib compat,pic +./usr/lib/oabi/libc.so.12.191 base-compat-shlib compat,pic ./usr/lib/oabi/libc_vfp.so.0 base-compat-shlib compat,pic ./usr/lib/oabi/libc_vfp.so.0.0 base-compat-shlib compat,pic ./usr/lib/oabi/libcom_err.so.7 base-compat-shlib compat,pic,kerberos diff -r e2d38198dabf -r 448164dc52d1 distrib/sets/lists/base/ad.mips --- a/distrib/sets/lists/base/ad.mips Sun Mar 23 14:41:48 2014 -0400 +++ b/distrib/sets/lists/base/ad.mips Sun Mar 23 23:43:03 2014 -0400 @@ -94,7 +94,7 @@ ./usr/lib/64/libc++.so.1 base-compat-shlib compat,pic,libcxx,arch64 ./usr/lib/64/libc++.so.1.0 base-compat-shlib compat,pic,libcxx,arch64 ./usr/lib/64/libc.so.12 base-compat-shlib compat,pic,arch64 -./usr/lib/64/libc.so.12.190 base-compat-shlib compat,pic,arch64 +./usr/lib/64/libc.so.12.191 base-compat-shlib compat,pic,arch64 ./usr/lib/64/libcom_err.so.7 base-compat-shlib compat,pic,kerberos,arch64 ./usr/lib/64/libcom_err.so.7.0 base-compat-shlib compat,pic,kerberos,arch64 ./usr/lib/64/libcrypt.so.1 base-compat-shlib compat,pic,arch64 @@ -434,7 +434,7 @@ ./usr/lib/o32/libc++.so.1 base-compat-shlib compat,pic,libcxx,arch64 ./usr/lib/o32/libc++.so.1.0 base-compat-shlib compat,pic,libcxx,arch64 ./usr/lib/o32/libc.so.12 base-compat-shlib compat,pic,arch64 -./usr/lib/o32/libc.so.12.190 base-compat-shlib compat,pic,arch64 +./usr/lib/o32/libc.so.12.191 base-compat-shlib compat,pic,arch64 ./usr/lib/o32/libcom_err.so.7 base-compat-shlib compat,pic,kerberos,arch64 ./usr/lib/o32/libcom_err.so.7.0 base-compat-shlib compat,pic,kerberos,arch64 ./usr/lib/o32/libcrypt.so.1 base-compat-shlib compat,pic,arch64 diff -r e2d38198dabf -r 448164dc52d1 distrib/sets/lists/base/ad.powerpc --- a/distrib/sets/lists/base/ad.powerpc Sun Mar 23 14:41:48 2014 -0400 +++ b/distrib/sets/lists/base/ad.powerpc Sun Mar 23 23:43:03 2014 -0400 @@ -83,7 +83,7 @@ ./usr/lib/powerpc/libc++.so.1 base-compat-shlib compat,arch64,pic,libcxx ./usr/lib/powerpc/libc++.so.1.0 base-compat-shlib compat,arch64,pic,libcxx ./usr/lib/powerpc/libc.so.12 base-compat-shlib compat,arch64,pic -./usr/lib/powerpc/libc.so.12.190 base-compat-shlib compat,arch64,pic +./usr/lib/powerpc/libc.so.12.191 base-compat-shlib compat,arch64,pic ./usr/lib/powerpc/libcom_err.so.7 base-compat-shlib compat,arch64,pic,kerberos ./usr/lib/powerpc/libcom_err.so.7.0 base-compat-shlib compat,arch64,pic,kerberos ./usr/lib/powerpc/libcrypt.so.1 base-compat-shlib compat,arch64,pic diff -r e2d38198dabf -r 448164dc52d1 distrib/sets/lists/base/md.amd64 --- a/distrib/sets/lists/base/md.amd64 Sun Mar 23 14:41:48 2014 -0400 +++ b/distrib/sets/lists/base/md.amd64 Sun Mar 23 23:43:03 2014 -0400 @@ -86,7 +86,7 @@ ./usr/lib/i386/libc++.so.1 base-compat-shlib compat,pic,libcxx ./usr/lib/i386/libc++.so.1.0 base-compat-shlib compat,pic,libcxx ./usr/lib/i386/libc.so.12 base-compat-shlib compat,pic -./usr/lib/i386/libc.so.12.190 base-compat-shlib compat,pic +./usr/lib/i386/libc.so.12.191 base-compat-shlib compat,pic ./usr/lib/i386/libcom_err.so.7 base-compat-shlib compat,pic,kerberos ./usr/lib/i386/libcom_err.so.7.0 base-compat-shlib compat,pic,kerberos ./usr/lib/i386/libcrypt.so.1 base-compat-shlib compat,pic diff -r e2d38198dabf -r 448164dc52d1 distrib/sets/lists/base/md.sparc64 --- a/distrib/sets/lists/base/md.sparc64 Sun Mar 23 14:41:48 2014 -0400 +++ b/distrib/sets/lists/base/md.sparc64 Sun Mar 23 23:43:03 2014 -0400 @@ -84,7 +84,7 @@ ./usr/lib/sparc/libc++.so.1 base-compat-shlib compat,pic,libcxx ./usr/lib/sparc/libc++.so.1.0 base-compat-shlib compat,pic,libcxx ./usr/lib/sparc/libc.so.12 base-compat-shlib compat,pic -./usr/lib/sparc/libc.so.12.190 base-compat-shlib compat,pic +./usr/lib/sparc/libc.so.12.191 base-compat-shlib compat,pic ./usr/lib/sparc/libcom_err.so.7 base-compat-shlib compat,pic,kerberos ./usr/lib/sparc/libcom_err.so.7.0 base-compat-shlib compat,pic,kerberos ./usr/lib/sparc/libcrypt.so.1 base-compat-shlib compat,pic diff -r e2d38198dabf -r 448164dc52d1 distrib/sets/lists/base/shl.mi --- a/distrib/sets/lists/base/shl.mi Sun Mar 23 14:41:48 2014 -0400 +++ b/distrib/sets/lists/base/shl.mi Sun Mar 23 23:43:03 2014 -0400 @@ -15,7 +15,7 @@ # ./lib/libc.so base-sys-shlib dynamicroot ./lib/libc.so.12 base-sys-shlib dynamicroot -./lib/libc.so.12.190 base-sys-shlib dynamicroot +./lib/libc.so.12.191 base-sys-shlib dynamicroot ./lib/libcrypt.so base-sys-shlib dynamicroot ./lib/libcrypt.so.1 base-sys-shlib dynamicroot ./lib/libcrypt.so.1.0 base-sys-shlib dynamicroot @@ -197,7 +197,7 @@ ./usr/lib/libc++.so.1.0 base-sys-shlib libcxx ./usr/lib/libc.so base-sys-shlib ./usr/lib/libc.so.12 base-sys-shlib -./usr/lib/libc.so.12.190 base-sys-shlib +./usr/lib/libc.so.12.191 base-sys-shlib ./usr/lib/libcdk.so base-obsolete obsolete ./usr/lib/libcom_err.so base-krb5-shlib kerberos ./usr/lib/libcom_err.so.7 base-krb5-shlib kerberos diff -r e2d38198dabf -r 448164dc52d1 distrib/sets/lists/comp/mi --- a/distrib/sets/lists/comp/mi Sun Mar 23 14:41:48 2014 -0400 +++ b/distrib/sets/lists/comp/mi Sun Mar 23 23:43:03 2014 -0400 @@ -4357,6 +4357,7 @@ ./usr/share/man/cat2/extattr_set_file.0 comp-c-catman .cat ./usr/share/man/cat2/extattr_set_link.0 comp-c-catman .cat ./usr/share/man/cat2/faccessat.0 comp-c-catman .cat +./usr/share/man/cat2/fallocate.0 comp-c-catman .cat ./usr/share/man/cat2/fchdir.0 comp-c-catman .cat ./usr/share/man/cat2/fchflags.0 comp-c-catman .cat ./usr/share/man/cat2/fchmod.0 comp-c-catman .cat @@ -4366,6 +4367,7 @@ ./usr/share/man/cat2/fchroot.0 comp-c-catman .cat ./usr/share/man/cat2/fcntl.0 comp-c-catman .cat ./usr/share/man/cat2/fdatasync.0 comp-c-catman .cat +./usr/share/man/cat2/fdiscard.0 comp-c-catman .cat ./usr/share/man/cat2/fhopen.0 comp-c-catman .cat ./usr/share/man/cat2/fhstat.0 comp-c-catman .cat ./usr/share/man/cat2/fhstatfs.0 comp-obsolete obsolete @@ -11248,6 +11250,7 @@ ./usr/share/man/html2/extattr_set_file.html comp-c-htmlman html ./usr/share/man/html2/extattr_set_link.html comp-c-htmlman html ./usr/share/man/html2/faccessat.html comp-c-htmlman html +./usr/share/man/html2/fallocate.html comp-c-htmlman html ./usr/share/man/html2/fchdir.html comp-c-htmlman html ./usr/share/man/html2/fchflags.html comp-c-htmlman html ./usr/share/man/html2/fchmod.html comp-c-htmlman html @@ -11257,6 +11260,7 @@ ./usr/share/man/html2/fchroot.html comp-c-htmlman html ./usr/share/man/html2/fcntl.html comp-c-htmlman html ./usr/share/man/html2/fdatasync.html comp-c-htmlman html +./usr/share/man/html2/fdiscard.html comp-c-htmlman html ./usr/share/man/html2/fhopen.html comp-c-htmlman html ./usr/share/man/html2/fhstat.html comp-c-htmlman html ./usr/share/man/html2/fhstatvfs.html comp-c-htmlman html @@ -17909,6 +17913,7 @@ ./usr/share/man/man2/extattr_set_file.2 comp-c-man .man ./usr/share/man/man2/extattr_set_link.2 comp-c-man .man ./usr/share/man/man2/faccessat.2 comp-c-man .man +./usr/share/man/man2/fallocate.2 comp-c-man .man ./usr/share/man/man2/fchdir.2 comp-c-man .man ./usr/share/man/man2/fchflags.2 comp-c-man .man ./usr/share/man/man2/fchmod.2 comp-c-man .man @@ -17918,6 +17923,7 @@ ./usr/share/man/man2/fchroot.2 comp-c-man .man ./usr/share/man/man2/fcntl.2 comp-c-man .man ./usr/share/man/man2/fdatasync.2 comp-c-man .man +./usr/share/man/man2/fdiscard.2 comp-c-man .man ./usr/share/man/man2/fhopen.2 comp-c-man .man ./usr/share/man/man2/fhstat.2 comp-c-man .man ./usr/share/man/man2/fhstatfs.2 comp-obsolete obsolete diff -r e2d38198dabf -r 448164dc52d1 distrib/sets/lists/debug/ad.arm --- a/distrib/sets/lists/debug/ad.arm Sun Mar 23 14:41:48 2014 -0400 +++ b/distrib/sets/lists/debug/ad.arm Sun Mar 23 23:43:03 2014 -0400 @@ -65,7 +65,7 @@ ./usr/libdata/debug/usr/lib/oabi/libbsdmalloc.so.0.0.debug comp-sys-debug debug,compat ./usr/libdata/debug/usr/lib/oabi/libbz2.so.1.1.debug comp-sys-debug debug,compat ./usr/libdata/debug/usr/lib/oabi/libc++.so.1.0.debug comp-sys-debug debug,compat,pic,libcxx -./usr/libdata/debug/usr/lib/oabi/libc.so.12.190.debug comp-sys-debug debug,compat +./usr/libdata/debug/usr/lib/oabi/libc.so.12.191.debug comp-sys-debug debug,compat ./usr/libdata/debug/usr/lib/oabi/libc_vfp.so.0.0.debug comp-sys-debug debug,compat,pic ./usr/libdata/debug/usr/lib/oabi/libcom_err.so.6.0.debug comp-compat-shlib compat,pic,kerberos,debug,obsolete ./usr/libdata/debug/usr/lib/oabi/libcom_err.so.7.0.debug comp-compat-shlib compat,pic,kerberos,debug diff -r e2d38198dabf -r 448164dc52d1 distrib/sets/lists/debug/ad.mips --- a/distrib/sets/lists/debug/ad.mips Sun Mar 23 14:41:48 2014 -0400 +++ b/distrib/sets/lists/debug/ad.mips Sun Mar 23 23:43:03 2014 -0400 @@ -71,7 +71,7 @@ ./usr/libdata/debug/usr/lib/64/libbluetooth.so.4.2.debug comp-sys-debug debug,compat,arch64 ./usr/libdata/debug/usr/lib/64/libbsdmalloc.so.0.0.debug comp-sys-debug debug,compat,arch64 ./usr/libdata/debug/usr/lib/64/libbz2.so.1.1.debug comp-sys-debug debug,compat,arch64 -./usr/libdata/debug/usr/lib/64/libc.so.12.190.debug comp-sys-debug debug,compat,arch64 +./usr/libdata/debug/usr/lib/64/libc.so.12.191.debug comp-sys-debug debug,compat,arch64 ./usr/libdata/debug/usr/lib/64/libcom_err.so.6.0.debug comp-compat-shlib compat,pic,kerberos,debug,obsolete,arch64 ./usr/libdata/debug/usr/lib/64/libcom_err.so.7.0.debug comp-compat-shlib compat,pic,kerberos,debug,arch64 ./usr/libdata/debug/usr/lib/64/libcrypt.so.1.0.debug comp-sys-debug debug,compat,arch64 @@ -247,7 +247,7 @@ ./usr/libdata/debug/usr/lib/o32/libbluetooth.so.4.2.debug comp-sys-debug debug,compat,arch64 ./usr/libdata/debug/usr/lib/o32/libbsdmalloc.so.0.0.debug comp-sys-debug debug,compat,arch64 ./usr/libdata/debug/usr/lib/o32/libbz2.so.1.1.debug comp-sys-debug debug,compat,arch64 -./usr/libdata/debug/usr/lib/o32/libc.so.12.190.debug comp-sys-debug debug,compat,arch64 +./usr/libdata/debug/usr/lib/o32/libc.so.12.191.debug comp-sys-debug debug,compat,arch64 ./usr/libdata/debug/usr/lib/o32/libcom_err.so.6.0.debug comp-compat-shlib compat,pic,kerberos,debug,obsolete,arch64 ./usr/libdata/debug/usr/lib/o32/libcom_err.so.7.0.debug comp-compat-shlib compat,pic,kerberos,debug,arch64 ./usr/libdata/debug/usr/lib/o32/libcrypt.so.1.0.debug comp-sys-debug debug,compat,arch64 diff -r e2d38198dabf -r 448164dc52d1 distrib/sets/lists/debug/ad.powerpc --- a/distrib/sets/lists/debug/ad.powerpc Sun Mar 23 14:41:48 2014 -0400 +++ b/distrib/sets/lists/debug/ad.powerpc Sun Mar 23 23:43:03 2014 -0400 @@ -153,7 +153,7 @@ ./usr/libdata/debug/usr/lib/powerpc/libbluetooth.so.4.2.debug comp-compat-shlib compat,arch64,debug,pic ./usr/libdata/debug/usr/lib/powerpc/libbsdmalloc.so.0.0.debug comp-compat-shlib compat,arch64,debug,pic ./usr/libdata/debug/usr/lib/powerpc/libbz2.so.1.1.debug comp-compat-shlib compat,arch64,debug,pic -./usr/libdata/debug/usr/lib/powerpc/libc.so.12.190.debug comp-compat-shlib compat,arch64,debug,pic +./usr/libdata/debug/usr/lib/powerpc/libc.so.12.191.debug comp-compat-shlib compat,arch64,debug,pic ./usr/libdata/debug/usr/lib/powerpc/libcom_err.so.7.0.debug comp-compat-shlib compat,arch64,debug,pic,kerberos ./usr/libdata/debug/usr/lib/powerpc/libcrypt.so.1.0.debug comp-compat-shlib compat,arch64,debug,pic ./usr/libdata/debug/usr/lib/powerpc/libcrypto.so.8.2.debug comp-compat-shlib compat,arch64,debug,pic,crypto diff -r e2d38198dabf -r 448164dc52d1 distrib/sets/lists/debug/md.amd64 --- a/distrib/sets/lists/debug/md.amd64 Sun Mar 23 14:41:48 2014 -0400 +++ b/distrib/sets/lists/debug/md.amd64 Sun Mar 23 23:43:03 2014 -0400 @@ -198,7 +198,7 @@ ./usr/libdata/debug/usr/lib/i386/libbluetooth.so.4.2.debug comp-compat-shlib compat,pic,debug ./usr/libdata/debug/usr/lib/i386/libbsdmalloc.so.0.0.debug comp-compat-shlib compat,pic,debug ./usr/libdata/debug/usr/lib/i386/libbz2.so.1.1.debug comp-compat-shlib compat,pic,debug -./usr/libdata/debug/usr/lib/i386/libc.so.12.190.debug comp-compat-shlib compat,pic,debug +./usr/libdata/debug/usr/lib/i386/libc.so.12.191.debug comp-compat-shlib compat,pic,debug ./usr/libdata/debug/usr/lib/i386/libc++.so.1.0.debug comp-compat-shlib compat,pic,debug,libcxx ./usr/libdata/debug/usr/lib/i386/libcom_err.so.6.0.debug comp-compat-shlib compat,pic,kerberos,debug,obsolete ./usr/libdata/debug/usr/lib/i386/libcom_err.so.7.0.debug comp-compat-shlib compat,pic,kerberos,debug diff -r e2d38198dabf -r 448164dc52d1 distrib/sets/lists/debug/md.sparc64 --- a/distrib/sets/lists/debug/md.sparc64 Sun Mar 23 14:41:48 2014 -0400 +++ b/distrib/sets/lists/debug/md.sparc64 Sun Mar 23 23:43:03 2014 -0400 @@ -196,7 +196,7 @@ ./usr/libdata/debug/usr/lib/sparc/libbluetooth.so.4.2.debug comp-compat-shlib compat,pic,debug ./usr/libdata/debug/usr/lib/sparc/libbsdmalloc.so.0.0.debug comp-compat-shlib compat,pic,debug ./usr/libdata/debug/usr/lib/sparc/libbz2.so.1.1.debug comp-compat-shlib compat,pic,debug -./usr/libdata/debug/usr/lib/sparc/libc.so.12.190.debug comp-compat-shlib compat,pic,debug +./usr/libdata/debug/usr/lib/sparc/libc.so.12.191.debug comp-compat-shlib compat,pic,debug ./usr/libdata/debug/usr/lib/sparc/libcom_err.so.6.0.debug comp-compat-shlib compat,pic,kerberos,debug,obsolete ./usr/libdata/debug/usr/lib/sparc/libcom_err.so.7.0.debug comp-compat-shlib compat,pic,kerberos,debug ./usr/libdata/debug/usr/lib/sparc/libcrypt.so.1.0.debug comp-compat-shlib compat,pic,debug diff -r e2d38198dabf -r 448164dc52d1 distrib/sets/lists/debug/shl.mi --- a/distrib/sets/lists/debug/shl.mi Sun Mar 23 14:41:48 2014 -0400 +++ b/distrib/sets/lists/debug/shl.mi Sun Mar 23 23:43:03 2014 -0400 @@ -1,5 +1,5 @@ # $NetBSD: shl.mi,v 1.58 2014/03/21 17:00:18 christos Exp $ -./usr/libdata/debug/lib/libc.so.12.190.debug comp-sys-debug debug +./usr/libdata/debug/lib/libc.so.12.191.debug comp-sys-debug debug ./usr/libdata/debug/lib/libcrypt.so.1.0.debug comp-sys-debug debug ./usr/libdata/debug/lib/libcrypto.so.8.2.debug comp-sys-debug debug ./usr/libdata/debug/lib/libdevmapper.so.1.0.debug comp-sys-debug debug @@ -60,7 +60,7 @@ ./usr/libdata/debug/usr/lib/libbluetooth.so.4.2.debug comp-sys-debug debug ./usr/libdata/debug/usr/lib/libbsdmalloc.so.0.0.debug comp-sys-debug debug ./usr/libdata/debug/usr/lib/libbz2.so.1.1.debug comp-sys-debug debug -./usr/libdata/debug/usr/lib/libc.so.12.190.debug comp-sys-debug debug +./usr/libdata/debug/usr/lib/libc.so.12.191.debug comp-sys-debug debug ./usr/libdata/debug/usr/lib/libc++.so.1.0.debug comp-sys-debug debug,libcxx ./usr/libdata/debug/usr/lib/libcom_err.so.7.0.debug comp-krb5-debug kerberos,debug ./usr/libdata/debug/usr/lib/libcrypt.so.1.0.debug comp-sys-debug debug diff -r e2d38198dabf -r 448164dc52d1 distrib/sets/lists/man/mi --- a/distrib/sets/lists/man/mi Sun Mar 23 14:41:48 2014 -0400 +++ b/distrib/sets/lists/man/mi Sun Mar 23 23:43:03 2014 -0400 @@ -2115,7 +2115,7 @@ ./usr/share/man/cat5/ntp.conf.0 man-ntp-catman .cat ./usr/share/man/cat5/ntp.keys.0 man-ntp-catman .cat ./usr/share/man/cat5/openssl.cnf.0 man-crypto-catman crypto,.cat -./usr/share/man/cat5/pam.conf.0 man-sys-catman .cat +./usr/share/man/cat5/pam.conf.0 man-sys-catman .cat,pam ./usr/share/man/cat5/passwd.0 man-sys-catman .cat ./usr/share/man/cat5/passwd.conf.0 man-sys-catman .cat ./usr/share/man/cat5/pcap-savefile.0 man-net-catman .cat @@ -5061,7 +5061,7 @@ ./usr/share/man/html5/ntp.conf.html man-ntp-htmlman html ./usr/share/man/html5/ntp.keys.html man-ntp-htmlman html ./usr/share/man/html5/openssl.cnf.html man-crypto-htmlman crypto,html -./usr/share/man/html5/pam.conf.html man-sys-htmlman html +./usr/share/man/html5/pam.conf.html man-sys-htmlman html,pam ./usr/share/man/html5/passwd.conf.html man-sys-htmlman html ./usr/share/man/html5/passwd.html man-sys-htmlman html ./usr/share/man/html5/pcap-savefile.html man-sys-htmlman html @@ -7953,7 +7953,7 @@ ./usr/share/man/man5/ntp.conf.5 man-ntp-man .man ./usr/share/man/man5/ntp.keys.5 man-ntp-man .man ./usr/share/man/man5/openssl.cnf.5 man-crypto-man crypto,.man -./usr/share/man/man5/pam.conf.5 man-sys-man .man +./usr/share/man/man5/pam.conf.5 man-sys-man .man,pam ./usr/share/man/man5/passwd.5 man-sys-man .man ./usr/share/man/man5/passwd.conf.5 man-sys-man .man ./usr/share/man/man5/pcap-savefile.5 man-netutil-man .man diff -r e2d38198dabf -r 448164dc52d1 include/unistd.h --- a/include/unistd.h Sun Mar 23 14:41:48 2014 -0400 +++ b/include/unistd.h Sun Mar 23 23:43:03 2014 -0400 @@ -327,7 +327,9 @@ int dup3(int, int, int); void endusershell(void); int exect(const char *, char * const *, char * const *); +int fallocate(int, off_t, off_t); int fchroot(int); +int fdiscard(int, off_t, off_t); int fsync_range(int, int, off_t, off_t); int getdomainname(char *, size_t); int getgrouplist(const char *, gid_t, gid_t *, int *); diff -r e2d38198dabf -r 448164dc52d1 lib/libc/shlib_version --- a/lib/libc/shlib_version Sun Mar 23 14:41:48 2014 -0400 +++ b/lib/libc/shlib_version Sun Mar 23 23:43:03 2014 -0400 @@ -40,4 +40,4 @@ # - consolidate ownership with crt0.o and avoid common symbols # - redo stdin/stdout/stderr to not require copy relocations major=12 -minor=190 +minor=191 diff -r e2d38198dabf -r 448164dc52d1 lib/libc/sys/Makefile.inc --- a/lib/libc/sys/Makefile.inc Sun Mar 23 14:41:48 2014 -0400 +++ b/lib/libc/sys/Makefile.inc Sun Mar 23 23:43:03 2014 -0400 @@ -147,7 +147,8 @@ .endfor WEAKASM= accept.S __aio_suspend50.S close.S connect.S execve.S \ - fcntl.S fdatasync.S fsync.S fsync_range.S __kevent50.S \ + fallocate.S fcntl.S fdatasync.S fdiscard.S fsync.S \ + fsync_range.S __kevent50.S \ kill.S mq_receive.S mq_send.S __mq_timedreceive50.S __mq_timedsend50.S \ msgrcv.S msgsnd.S __msync13.S __nanosleep50.S open.S poll.S \ __pollts50.S __pselect50.S read.S readlink.S \ @@ -216,7 +217,7 @@ MAN+= accept.2 access.2 acct.2 adjtime.2 bind.2 brk.2 chdir.2 \ chflags.2 chmod.2 chown.2 chroot.2 clock_settime.2 clone.2 close.2 \ connect.2 dup.2 execve.2 _exit.2 extattr_get_file.2 \ - fcntl.2 fdatasync.2 fhopen.2 \ + fallocate.2 fcntl.2 fdatasync.2 fhopen.2 \ flock.2 fork.2 fsync.2 getcontext.2 getdents.2 \ getfh.2 getvfsstat.2 getgid.2 getgroups.2 \ getitimer.2 getlogin.2 getpeername.2 getpgrp.2 getpid.2 \ @@ -275,6 +276,7 @@ MLINKS+=access.2 faccessat.2 MLINKS+=chmod.2 fchmodat.2 MLINKS+=chown.2 fchownat.2 +MLINKS+=fallocate.2 fdiscard.2 MLINKS+=fhopen.2 fhstat.2 fhopen.2 fhstatvfs.2 fhopen.2 fhstatvfs1.2 MLINKS+=stat.2 fstatat.2 MLINKS+=fsync.2 fsync_range.2 diff -r e2d38198dabf -r 448164dc52d1 lib/libc/sys/fallocate.2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib/libc/sys/fallocate.2 Sun Mar 23 23:43:03 2014 -0400 @@ -0,0 +1,140 @@ +.\" $NetBSD$ +.\" +.\" Copyright (c) 2014 The NetBSD Foundation, Inc. +.\" All rights reserved. +.\" +.\" This code is derived from software contributed to The NetBSD Foundation +.\" by David A. Holland. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.Dd March 23, 2014 +.Dt FALLOCATE 2 +.Os +.Sh NAME +.Nm fallocate , +.Nm fdiscard +.Nd allocate or discard backing store for files +.Sh LIBRARY +.Lb libc +.Sh SYNOPSIS +.In unistd.h +.Ft int +.Fn fallocate "int fd" "off_t pos" "off_t length" +.Ft int +.Fn fdiscard "int fd" "off_t pos" "off_t length" +.Sh DESCRIPTION +The +.Fn fallocate +call allocates backing store for the file referenced by +.Fa fd +in the region starting at +.Fa pos +bytes from the start of the file and continuing for +.Fa length +bytes more. +If the region extends past the current end of file, the file size is +increased to cover the region. +.Pp +The +.Fn fdiscard +call discards backing store for the file referenced by +.Fa fd +in the region starting at +.Fa pos +bytes from the start of the file and continuing for +.Fa length +bytes more. +The file size is not affected. +.Pp +Both calls operate on the basis of file system blocks, so +.Fn fallocate +may allocate more physical space than requested and +.Fn fdiscard +may discard less physical space than requested. +.Pp +When +.Fn fallocate +is applied to an unallocated region in a regular file (a +.Dq hole ), +the hole is filled and the visible contents are unaffected; both holes +and newly allocated regions read as all zeros. +If +.Fn fallocate +is applied to an already-allocated region in a regular file, +it has no effect. +.Pp +When +.Fn fdiscard +is applied to a regular file, a hole is created and any data in the +affected region is thrown away. +Subsequent reads of the region return zeros. +.Pp +If +.Fn fdiscard +is applied to a device, and the device supports an underlying discard +operation, that operation is invoked. +For example, ATA flash devices and solid-state disks support an +operation called TRIM that discards blocks at the device level. +The behavior of blocks discarded at this level is +implementation-defined; as devices vary, specific behavior should not +be relied upon. +Subsequent reads of the same block may return zeros; such reads may +also, however, continue to return the previously written data, or +return other data, or return indeterminate garbage; or may switch +between any of these behaviors at unpredictable points later on. +.Pp +For both calls, the file +.Fa fd +must be open for writing and may not be a directory or socket. +.Sh RETURN VALUES +On success these calls return 0. +On error, \-1 is returned, and the global variable +.Va errno +is set to indicate the error. +.Sh ERRORS +.Bl -tag -width Er +.It Bq Er EBADF +The file handle +.Fa fd +is invalid or not open for writing. +.It Bq Er EINVAL +The position and/or length values are negative. +.It Bq Er EISDIR +The selected file is a directory. +.It Bq Er EIO +A hardware-level I/O error occurred. +.It Bq Er ENOSPC +There was no space in the filesystem to complete the operation. +.It Bq Er EDQUOT +Allocating the requested blocks would exceed the user's quota. +.El +.Sh SEE ALSO +.Xr ftruncate 2 +.Sh HISTORY +The +.Fn fallocate +and +.Fn fdiscard +function calls appeared in +.Nx 7.0 . +Similar functions appeared previously in Linux. diff -r e2d38198dabf -r 448164dc52d1 lib/libc/sys/truncate.2 --- a/lib/libc/sys/truncate.2 Sun Mar 23 14:41:48 2014 -0400 +++ b/lib/libc/sys/truncate.2 Sun Mar 23 23:43:03 2014 -0400 @@ -29,7 +29,7 @@ .\" .\" @(#)truncate.2 8.1 (Berkeley) 6/4/93 .\" -.Dd March 16, 2008 +.Dd March 23, 2014 .Dt TRUNCATE 2 .Os .Sh NAME @@ -129,7 +129,8 @@ is not open for writing. .El .Sh SEE ALSO -.Xr open 2 +.Xr open 2 , +.Xr fdiscard 2 .Sh STANDARDS Use of .Fn truncate @@ -147,6 +148,3 @@ .Fn ftruncate function calls appeared in .Bx 4.2 . -.Sh BUGS -These calls should be generalized to allow ranges -of bytes in a file to be discarded. diff -r e2d38198dabf -r 448164dc52d1 share/man/man9/vnodeops.9 --- a/share/man/man9/vnodeops.9 Sun Mar 23 14:41:48 2014 -0400 +++ b/share/man/man9/vnodeops.9 Sun Mar 23 23:43:03 2014 -0400 @@ -42,6 +42,8 @@ .Nm VOP_SETATTR , .Nm VOP_READ , .Nm VOP_WRITE , +.Nm VOP_FALLOCATE, +.Nm VOP_FDISCARD, .Nm VOP_IOCTL , .Nm VOP_FCNTL , .Nm VOP_POLL , @@ -115,6 +117,10 @@ .Fn VOP_WRITE "struct vnode *vp" "struct uio *uio" "int ioflag" \ "kauth_cred_t cred" .Ft int +.Fn VOP_FALLOCATE "struct vnode *vp" "off_t pos" "off_t len" +.Ft int +.Fn VOP_FDISCARD "struct vnode *vp" "off_t pos" "off_t len" +.Ft int .Fn VOP_IOCTL "struct vnode *vp" "u_long command" "void *data" \ "int fflag" "kauth_cred_t cred" .Ft int @@ -235,6 +241,8 @@ .It VOP_SETATTR Set file attributes .It VOP_READ Read from a file .It VOP_WRITE Write to a file +.It VOP_FALLOCATE Allocate backing for a file +.It VOP_FDISCARD Discard backing for a file .It VOP_IOCTL Perform device-specific I/O .It VOP_FCNTL Perform file control .It VOP_POLL Test if poll event has occurred @@ -649,6 +657,50 @@ .Pp Zero is returned on success, otherwise an error is returned. The vnode should be locked on entry and remains locked on exit. +.It Fn VOP_FALLOCATE "vp" "pos" "len" +Allocate backing store. +The argument +.Fa vp +is the vnode for the file. +The +.Fa pos +and +.Fa len +arguments (specified in bytes) name an extent within the file. +The blocks underlying this range, rounding up at the top and down at +the bottom if needed, are checked; if no physical storage is +allocated, a physical block is allocated and zeroed. +This operation removes +.Dq holes +from files. +.It Fn VOP_FDISCARD "vp" "pos" "len" +Discard backing store. +The argument +.Fa vp +is the vnode for the file. +The +.Fa pos +and +.Fa len +arguments (specified in bytes) name an extent within the file. +The blocks underlying this range, rounding down at the top and up at +the bottom if needed, are checked. If any physical storage is used, +it is deallocated. +This operation creates +.Dq holes +in files. +Discarded blocks of regular files read back afterwards as zeroes. +On devices, the underlying discard-block operation if any (e.g. ATA +TRIM) is issued. +The device handles this as it sees fit. +In particular it is +.Em not +guaranteed that discarded blocks on devices will be zeroed; reading a +discarded block might produce zeros, or ones, or the previously +existing data, or some other data, or trash. +.\" XXX: if you discard part of a block in a regular file, should that +.\" part be explicitly zeroed? Also, how do you find the underlying +.\" block size? .It Fn VOP_IOCTL "vp" "command" "data" "fflag" "cred" Perform device-specific I/O. The argument diff -r e2d38198dabf -r 448164dc52d1 sys/altq/altq_conf.c --- a/sys/altq/altq_conf.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/altq/altq_conf.c Sun Mar 23 23:43:03 2014 -0400 @@ -178,6 +178,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER, }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/acorn26/ioc/arcpp.c --- a/sys/arch/acorn26/ioc/arcpp.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/acorn26/ioc/arcpp.c Sun Mar 23 23:43:03 2014 -0400 @@ -119,6 +119,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/acorn32/mainbus/fd.c --- a/sys/arch/acorn32/mainbus/fd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/acorn32/mainbus/fd.c Sun Mar 23 23:43:03 2014 -0400 @@ -274,6 +274,7 @@ .d_ioctl = fdioctl, .d_dump = nodump, .d_psize = nosize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -288,6 +289,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/alpha/alpha/promcons.c --- a/sys/arch/alpha/alpha/promcons.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/alpha/alpha/promcons.c Sun Mar 23 23:43:03 2014 -0400 @@ -73,6 +73,7 @@ .d_poll = prompoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; @@ -275,6 +276,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/amiga/dev/fd.c --- a/sys/arch/amiga/dev/fd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/amiga/dev/fd.c Sun Mar 23 23:43:03 2014 -0400 @@ -260,6 +260,7 @@ .d_ioctl = fdioctl, .d_dump = nodump, .d_psize = nosize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -274,6 +275,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/amiga/dev/grf.c --- a/sys/arch/amiga/dev/grf.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/amiga/dev/grf.c Sun Mar 23 23:43:03 2014 -0400 @@ -126,6 +126,7 @@ .d_poll = nopoll, .d_mmap = grfmmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/amiga/dev/ite.c --- a/sys/arch/amiga/dev/ite.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/amiga/dev/ite.c Sun Mar 23 23:43:03 2014 -0400 @@ -172,6 +172,7 @@ .d_poll = itepoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/amiga/dev/kbd.c --- a/sys/arch/amiga/dev/kbd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/amiga/dev/kbd.c Sun Mar 23 23:43:03 2014 -0400 @@ -181,6 +181,7 @@ .d_poll = kbdpoll, .d_mmap = nommap, .d_kqfilter = kbdkqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/amiga/dev/mfc.c --- a/sys/arch/amiga/dev/mfc.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/amiga/dev/mfc.c Sun Mar 23 23:43:03 2014 -0400 @@ -258,6 +258,7 @@ .d_poll = mfcspoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/amiga/dev/ms.c --- a/sys/arch/amiga/dev/ms.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/amiga/dev/ms.c Sun Mar 23 23:43:03 2014 -0400 @@ -141,6 +141,7 @@ .d_poll = mspoll, .d_mmap = nommap, .d_kqfilter = mskqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/amiga/dev/msc.c --- a/sys/arch/amiga/dev/msc.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/amiga/dev/msc.c Sun Mar 23 23:43:03 2014 -0400 @@ -236,6 +236,7 @@ .d_poll = mscpoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/amiga/dev/par.c --- a/sys/arch/amiga/dev/par.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/amiga/dev/par.c Sun Mar 23 23:43:03 2014 -0400 @@ -124,6 +124,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/amiga/dev/ser.c --- a/sys/arch/amiga/dev/ser.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/amiga/dev/ser.c Sun Mar 23 23:43:03 2014 -0400 @@ -99,6 +99,7 @@ .d_poll = serpoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/amiga/dev/view.c --- a/sys/arch/amiga/dev/view.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/amiga/dev/view.c Sun Mar 23 23:43:03 2014 -0400 @@ -90,6 +90,7 @@ .d_poll = nopoll, .d_mmap = viewmmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/arc/dev/opms.c --- a/sys/arch/arc/dev/opms.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/arc/dev/opms.c Sun Mar 23 23:43:03 2014 -0400 @@ -149,6 +149,7 @@ .d_poll = opmspoll, .d_mmap = nommap, .d_kqfilter = opmskqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/arc/dev/pccons.c --- a/sys/arch/arc/dev/pccons.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/arc/dev/pccons.c Sun Mar 23 23:43:03 2014 -0400 @@ -196,6 +196,7 @@ .d_poll = pcpoll, .d_mmap = pcmmap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/arc/jazz/fd.c --- a/sys/arch/arc/jazz/fd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/arc/jazz/fd.c Sun Mar 23 23:43:03 2014 -0400 @@ -193,6 +193,7 @@ .d_ioctl = fdioctl, .d_dump = nodump, .d_psize = nosize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -207,6 +208,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/arm/at91/at91dbgu.c --- a/sys/arch/arm/at91/at91dbgu.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/arm/at91/at91dbgu.c Sun Mar 23 23:43:03 2014 -0400 @@ -192,6 +192,7 @@ .d_poll = at91dbgu_poll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/arm/at91/at91usart.c --- a/sys/arch/arm/at91/at91usart.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/arm/at91/at91usart.c Sun Mar 23 23:43:03 2014 -0400 @@ -195,6 +195,7 @@ .d_poll = at91usart_poll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/arm/clps711x/clpscom.c --- a/sys/arch/arm/clps711x/clpscom.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/arm/clps711x/clpscom.c Sun Mar 23 23:43:03 2014 -0400 @@ -179,6 +179,7 @@ .d_poll = clpscompoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/arm/ep93xx/epcom.c --- a/sys/arch/arm/ep93xx/epcom.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/arm/ep93xx/epcom.c Sun Mar 23 23:43:03 2014 -0400 @@ -172,6 +172,7 @@ .d_poll = epcompoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/arm/footbridge/footbridge_com.c --- a/sys/arch/arm/footbridge/footbridge_com.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/arm/footbridge/footbridge_com.c Sun Mar 23 23:43:03 2014 -0400 @@ -138,6 +138,7 @@ .d_poll = fcompoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/arm/imx/imxuart.c --- a/sys/arch/arm/imx/imxuart.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/arm/imx/imxuart.c Sun Mar 23 23:43:03 2014 -0400 @@ -348,6 +348,7 @@ .d_poll = imxupoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/arm/ixp12x0/ixp12x0_com.c --- a/sys/arch/arm/ixp12x0/ixp12x0_com.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/arm/ixp12x0/ixp12x0_com.c Sun Mar 23 23:43:03 2014 -0400 @@ -161,6 +161,7 @@ .d_poll = ixpcompoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/arm/s3c2xx0/sscom.c --- a/sys/arch/arm/s3c2xx0/sscom.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/arm/s3c2xx0/sscom.c Sun Mar 23 23:43:03 2014 -0400 @@ -198,6 +198,7 @@ .d_poll = sscompoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/arm/sa11x0/sa11x0_com.c --- a/sys/arch/arm/sa11x0/sa11x0_com.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/arm/sa11x0/sa11x0_com.c Sun Mar 23 23:43:03 2014 -0400 @@ -127,6 +127,7 @@ .d_poll = sacompoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/atari/dev/clock.c --- a/sys/arch/atari/dev/clock.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/atari/dev/clock.c Sun Mar 23 23:43:03 2014 -0400 @@ -132,6 +132,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/atari/dev/fd.c --- a/sys/arch/atari/dev/fd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/atari/dev/fd.c Sun Mar 23 23:43:03 2014 -0400 @@ -286,6 +286,7 @@ .d_ioctl = fdioctl, .d_dump = nodump, .d_psize = nosize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -300,6 +301,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/atari/dev/grf.c --- a/sys/arch/atari/dev/grf.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/atari/dev/grf.c Sun Mar 23 23:43:03 2014 -0400 @@ -118,6 +118,7 @@ .d_poll = nopoll, .d_mmap = grfmmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/atari/dev/hdfd.c --- a/sys/arch/atari/dev/hdfd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/atari/dev/hdfd.c Sun Mar 23 23:43:03 2014 -0400 @@ -292,6 +292,7 @@ .d_ioctl = fdioctl, .d_dump = nodump, .d_psize = nosize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -306,6 +307,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/atari/dev/ite.c --- a/sys/arch/atari/dev/ite.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/atari/dev/ite.c Sun Mar 23 23:43:03 2014 -0400 @@ -170,6 +170,7 @@ .d_poll = itepoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/atari/dev/kbd.c --- a/sys/arch/atari/dev/kbd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/atari/dev/kbd.c Sun Mar 23 23:43:03 2014 -0400 @@ -139,6 +139,7 @@ .d_poll = kbdpoll, .d_mmap = nommap, .d_kqfilter = kbdkqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/atari/dev/lpt.c --- a/sys/arch/atari/dev/lpt.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/atari/dev/lpt.c Sun Mar 23 23:43:03 2014 -0400 @@ -146,6 +146,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/atari/dev/ms.c --- a/sys/arch/atari/dev/ms.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/atari/dev/ms.c Sun Mar 23 23:43:03 2014 -0400 @@ -101,6 +101,7 @@ .d_poll = mspoll, .d_mmap = nommap, .d_kqfilter = mskqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/atari/dev/ser.c --- a/sys/arch/atari/dev/ser.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/atari/dev/ser.c Sun Mar 23 23:43:03 2014 -0400 @@ -269,6 +269,7 @@ .d_poll = serpoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/atari/dev/view.c --- a/sys/arch/atari/dev/view.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/atari/dev/view.c Sun Mar 23 23:43:03 2014 -0400 @@ -86,6 +86,7 @@ .d_poll = nopoll, .d_mmap = viewmmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/atari/dev/zs.c --- a/sys/arch/atari/dev/zs.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/atari/dev/zs.c Sun Mar 23 23:43:03 2014 -0400 @@ -248,6 +248,7 @@ .d_poll = zspoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/atari/vme/et4000.c --- a/sys/arch/atari/vme/et4000.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/atari/vme/et4000.c Sun Mar 23 23:43:03 2014 -0400 @@ -148,6 +148,7 @@ .d_poll = nopoll, .d_mmap = et4kmmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/atari/vme/leo.c --- a/sys/arch/atari/vme/leo.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/atari/vme/leo.c Sun Mar 23 23:43:03 2014 -0400 @@ -118,6 +118,7 @@ .d_poll = nopoll, .d_mmap = leommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/cobalt/dev/panel.c --- a/sys/arch/cobalt/dev/panel.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/cobalt/dev/panel.c Sun Mar 23 23:43:03 2014 -0400 @@ -115,6 +115,7 @@ .d_poll = panelpoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/dreamcast/dev/gdrom.c --- a/sys/arch/dreamcast/dev/gdrom.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/dreamcast/dev/gdrom.c Sun Mar 23 23:43:03 2014 -0400 @@ -70,6 +70,7 @@ .d_ioctl = gdromioctl, .d_dump = nodump, .d_psize = nosize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -84,6 +85,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/dreamcast/dev/maple/maple.c --- a/sys/arch/dreamcast/dev/maple/maple.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/dreamcast/dev/maple/maple.c Sun Mar 23 23:43:03 2014 -0400 @@ -175,6 +175,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/dreamcast/dev/maple/mlcd.c --- a/sys/arch/dreamcast/dev/maple/mlcd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/dreamcast/dev/maple/mlcd.c Sun Mar 23 23:43:03 2014 -0400 @@ -179,6 +179,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/dreamcast/dev/maple/mmemcard.c --- a/sys/arch/dreamcast/dev/maple/mmemcard.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/dreamcast/dev/maple/mmemcard.c Sun Mar 23 23:43:03 2014 -0400 @@ -195,6 +195,7 @@ .d_ioctl = mmemioctl, .d_dump = nodump, .d_psize = nosize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -209,6 +210,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/emips/ebus/ace_ebus.c --- a/sys/arch/emips/ebus/ace_ebus.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/emips/ebus/ace_ebus.c Sun Mar 23 23:43:03 2014 -0400 @@ -1562,6 +1562,7 @@ .d_ioctl = aceioctl, .d_dump = acedump, .d_psize = acesize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -1576,6 +1577,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/emips/ebus/dz_ebus.c --- a/sys/arch/emips/ebus/dz_ebus.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/emips/ebus/dz_ebus.c Sun Mar 23 23:43:03 2014 -0400 @@ -121,6 +121,7 @@ .d_poll = dzpoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/emips/ebus/flash_ebus.c --- a/sys/arch/emips/ebus/flash_ebus.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/emips/ebus/flash_ebus.c Sun Mar 23 23:43:03 2014 -0400 @@ -1402,6 +1402,7 @@ .d_ioctl = eflashioctl, .d_dump = eflashdump, .d_psize = eflashsize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -1416,6 +1417,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/emips/ebus/icap_ebus.c --- a/sys/arch/emips/ebus/icap_ebus.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/emips/ebus/icap_ebus.c Sun Mar 23 23:43:03 2014 -0400 @@ -159,6 +159,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/emips/ebus/stub_ebus.c --- a/sys/arch/emips/ebus/stub_ebus.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/emips/ebus/stub_ebus.c Sun Mar 23 23:43:03 2014 -0400 @@ -108,6 +108,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/epoc32/windermere/wmcom.c --- a/sys/arch/epoc32/windermere/wmcom.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/epoc32/windermere/wmcom.c Sun Mar 23 23:43:03 2014 -0400 @@ -143,6 +143,7 @@ .d_poll = wmcompoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/evbarm/dev/plcom.c --- a/sys/arch/evbarm/dev/plcom.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/evbarm/dev/plcom.c Sun Mar 23 23:43:03 2014 -0400 @@ -204,6 +204,7 @@ .d_poll = plcompoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/evbarm/g42xxeb/g42xxeb_lcd.c --- a/sys/arch/evbarm/g42xxeb/g42xxeb_lcd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/evbarm/g42xxeb/g42xxeb_lcd.c Sun Mar 23 23:43:03 2014 -0400 @@ -136,6 +136,7 @@ .d_poll = nopoll, .d_mmap = lcdmmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/evbarm/lubbock/lubbock_lcd.c --- a/sys/arch/evbarm/lubbock/lubbock_lcd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/evbarm/lubbock/lubbock_lcd.c Sun Mar 23 23:43:03 2014 -0400 @@ -146,6 +146,7 @@ .d_poll = nopoll, .d_mmap = lcdmmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/evbarm/mini2440/mini2440_lcd.c --- a/sys/arch/evbarm/mini2440/mini2440_lcd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/evbarm/mini2440/mini2440_lcd.c Sun Mar 23 23:43:03 2014 -0400 @@ -197,6 +197,7 @@ .d_poll = nopoll, .d_mmap = lcdmmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/evbarm/netwalker/netwalker_lcd.c --- a/sys/arch/evbarm/netwalker/netwalker_lcd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/evbarm/netwalker/netwalker_lcd.c Sun Mar 23 23:43:03 2014 -0400 @@ -83,6 +83,7 @@ .d_poll = nopoll, .d_mmap = lcdmmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/evbarm/smdk2xx0/smdk2410_lcd.c --- a/sys/arch/evbarm/smdk2xx0/smdk2410_lcd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/evbarm/smdk2xx0/smdk2410_lcd.c Sun Mar 23 23:43:03 2014 -0400 @@ -170,6 +170,7 @@ .d_poll = nopoll, .d_mmap = lcdmmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/evbarm/tsarm/tslcd.c --- a/sys/arch/evbarm/tsarm/tslcd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/evbarm/tsarm/tslcd.c Sun Mar 23 23:43:03 2014 -0400 @@ -87,6 +87,7 @@ .d_poll = tslcdpoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/evbppc/virtex/dev/xlcom.c --- a/sys/arch/evbppc/virtex/dev/xlcom.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/evbppc/virtex/dev/xlcom.c Sun Mar 23 23:43:03 2014 -0400 @@ -148,6 +148,7 @@ .d_poll = xlcom_poll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/hp300/dev/ct.c --- a/sys/arch/hp300/dev/ct.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/hp300/dev/ct.c Sun Mar 23 23:43:03 2014 -0400 @@ -159,6 +159,7 @@ .d_ioctl = ctioctl, .d_dump = nodump, .d_psize = nosize, + .d_discard = nodiscard, .d_flag = D_TAPE }; @@ -173,6 +174,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_TAPE }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/hp300/dev/dcm.c --- a/sys/arch/hp300/dev/dcm.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/hp300/dev/dcm.c Sun Mar 23 23:43:03 2014 -0400 @@ -341,6 +341,7 @@ .d_poll = dcmpoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/hp300/dev/mt.c --- a/sys/arch/hp300/dev/mt.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/hp300/dev/mt.c Sun Mar 23 23:43:03 2014 -0400 @@ -148,6 +148,7 @@ .d_ioctl = mtioctl, .d_dump = nodump, .d_psize = nosize, + .d_discard = nodiscard, .d_flag = D_TAPE }; @@ -162,6 +163,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_TAPE }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/hp300/dev/ppi.c --- a/sys/arch/hp300/dev/ppi.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/hp300/dev/ppi.c Sun Mar 23 23:43:03 2014 -0400 @@ -127,6 +127,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/hp300/dev/rd.c --- a/sys/arch/hp300/dev/rd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/hp300/dev/rd.c Sun Mar 23 23:43:03 2014 -0400 @@ -288,6 +288,7 @@ .d_ioctl = rdioctl, .d_dump = rddump, .d_psize = rdsize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -302,6 +303,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/hpcmips/dev/ucbsnd.c --- a/sys/arch/hpcmips/dev/ucbsnd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/hpcmips/dev/ucbsnd.c Sun Mar 23 23:43:03 2014 -0400 @@ -186,6 +186,7 @@ .d_poll = nopoll, .d_mmap = nullmmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/hpcmips/tx/txcom.c --- a/sys/arch/hpcmips/tx/txcom.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/hpcmips/tx/txcom.c Sun Mar 23 23:43:03 2014 -0400 @@ -187,6 +187,7 @@ .d_poll = txcompoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/hpcmips/vr/flash_vrip.c --- a/sys/arch/hpcmips/vr/flash_vrip.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/hpcmips/vr/flash_vrip.c Sun Mar 23 23:43:03 2014 -0400 @@ -94,6 +94,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/hpcmips/vr/vr4181aiu.c --- a/sys/arch/hpcmips/vr/vr4181aiu.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/hpcmips/vr/vr4181aiu.c Sun Mar 23 23:43:03 2014 -0400 @@ -107,6 +107,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/i386/isa/cmos.c --- a/sys/arch/i386/isa/cmos.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/i386/isa/cmos.c Sun Mar 23 23:43:03 2014 -0400 @@ -105,6 +105,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER | D_MPSAFE }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/landisk/dev/button.c --- a/sys/arch/landisk/dev/button.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/landisk/dev/button.c Sun Mar 23 23:43:03 2014 -0400 @@ -101,6 +101,7 @@ .d_poll = btnpoll, .d_mmap = nommap, .d_kqfilter = btnkqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/luna68k/dev/siotty.c --- a/sys/arch/luna68k/dev/siotty.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/luna68k/dev/siotty.c Sun Mar 23 23:43:03 2014 -0400 @@ -138,6 +138,7 @@ .d_poll = siopoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/mac68k/dev/aed.c --- a/sys/arch/mac68k/dev/aed.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/mac68k/dev/aed.c Sun Mar 23 23:43:03 2014 -0400 @@ -90,6 +90,7 @@ .d_poll = aedpoll, .d_mmap = nommap, .d_kqfilter = aedkqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/mac68k/dev/grf_compat.c --- a/sys/arch/mac68k/dev/grf_compat.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/mac68k/dev/grf_compat.c Sun Mar 23 23:43:03 2014 -0400 @@ -77,6 +77,7 @@ .d_poll = nopoll, .d_mmap = grfmmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/mac68k/dev/ite_compat.c --- a/sys/arch/mac68k/dev/ite_compat.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/mac68k/dev/ite_compat.c Sun Mar 23 23:43:03 2014 -0400 @@ -73,6 +73,7 @@ .d_poll = itepoll, .d_mmap = nommap, .d_kqfilter = itekqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/mac68k/nubus/cpi_nubus.c --- a/sys/arch/mac68k/nubus/cpi_nubus.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/mac68k/nubus/cpi_nubus.c Sun Mar 23 23:43:03 2014 -0400 @@ -125,6 +125,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/mac68k/obio/asc.c --- a/sys/arch/mac68k/obio/asc.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/mac68k/obio/asc.c Sun Mar 23 23:43:03 2014 -0400 @@ -131,6 +131,7 @@ .d_poll = nopoll, .d_mmap = ascmmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/mac68k/obio/iwm_fd.c --- a/sys/arch/mac68k/obio/iwm_fd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/mac68k/obio/iwm_fd.c Sun Mar 23 23:43:03 2014 -0400 @@ -239,6 +239,7 @@ .d_ioctl = fdioctl, .d_dump = nodump, .d_psize = nosize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -253,6 +254,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/macppc/dev/aed.c --- a/sys/arch/macppc/dev/aed.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/macppc/dev/aed.c Sun Mar 23 23:43:03 2014 -0400 @@ -94,6 +94,7 @@ .d_poll = aedpoll, .d_mmap = nommap, .d_kqfilter = aedkqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/macppc/dev/apm.c --- a/sys/arch/macppc/dev/apm.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/macppc/dev/apm.c Sun Mar 23 23:43:03 2014 -0400 @@ -137,6 +137,7 @@ .d_poll = apmpoll, .d_mmap = nommap, .d_kqfilter = apmkqfilter, + .d_discard = nodiscard, .d_flag = 0 }; #endif diff -r e2d38198dabf -r 448164dc52d1 sys/arch/macppc/dev/nvram.c --- a/sys/arch/macppc/dev/nvram.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/macppc/dev/nvram.c Sun Mar 23 23:43:03 2014 -0400 @@ -81,6 +81,7 @@ .d_poll = nopoll, .d_mmap = nvrammmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/macppc/dev/ofcons.c --- a/sys/arch/macppc/dev/ofcons.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/macppc/dev/ofcons.c Sun Mar 23 23:43:03 2014 -0400 @@ -89,6 +89,7 @@ .d_poll = ofcpoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/mips/adm5120/dev/uart.c --- a/sys/arch/mips/adm5120/dev/uart.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/mips/adm5120/dev/uart.c Sun Mar 23 23:43:03 2014 -0400 @@ -76,6 +76,7 @@ .d_poll = uart_poll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/mips/atheros/dev/athflash.c --- a/sys/arch/mips/atheros/dev/athflash.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/mips/atheros/dev/athflash.c Sun Mar 23 23:43:03 2014 -0400 @@ -144,6 +144,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/mips/sibyte/dev/sbjcn.c --- a/sys/arch/mips/sibyte/dev/sbjcn.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/mips/sibyte/dev/sbjcn.c Sun Mar 23 23:43:03 2014 -0400 @@ -185,6 +185,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/mips/sibyte/dev/sbscn.c --- a/sys/arch/mips/sibyte/dev/sbscn.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/mips/sibyte/dev/sbscn.c Sun Mar 23 23:43:03 2014 -0400 @@ -196,6 +196,7 @@ .d_poll = sbscnpoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/mipsco/obio/i82072.c --- a/sys/arch/mipsco/obio/i82072.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/mipsco/obio/i82072.c Sun Mar 23 23:43:03 2014 -0400 @@ -55,6 +55,7 @@ .d_ioctl = noioctl, .d_dump = nodump, .d_psize = nosize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -69,6 +70,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/news68k/news68k/romcons.c --- a/sys/arch/news68k/news68k/romcons.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/news68k/news68k/romcons.c Sun Mar 23 23:43:03 2014 -0400 @@ -92,6 +92,7 @@ .d_poll = romcons_poll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/prep/pnpbus/nvram_pnpbus.c --- a/sys/arch/prep/pnpbus/nvram_pnpbus.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/prep/pnpbus/nvram_pnpbus.c Sun Mar 23 23:43:03 2014 -0400 @@ -101,6 +101,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER, }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/sandpoint/sandpoint/satmgr.c --- a/sys/arch/sandpoint/sandpoint/satmgr.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/sandpoint/sandpoint/satmgr.c Sun Mar 23 23:43:03 2014 -0400 @@ -116,6 +116,7 @@ .d_poll = satpoll, .d_mmap = nommap, .d_kqfilter = satkqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/sgimips/dev/scn.c --- a/sys/arch/sgimips/dev/scn.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/sgimips/dev/scn.c Sun Mar 23 23:43:03 2014 -0400 @@ -165,6 +165,7 @@ .d_poll = scnpoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/sh3/dev/sci.c --- a/sys/arch/sh3/dev/sci.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/sh3/dev/sci.c Sun Mar 23 23:43:03 2014 -0400 @@ -258,6 +258,7 @@ .d_poll = scipoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/sh3/dev/scif.c --- a/sys/arch/sh3/dev/scif.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/sh3/dev/scif.c Sun Mar 23 23:43:03 2014 -0400 @@ -222,6 +222,7 @@ .d_poll = scifpoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/sh3/dev/wdog.c --- a/sys/arch/sh3/dev/wdog.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/sh3/dev/wdog.c Sun Mar 23 23:43:03 2014 -0400 @@ -79,6 +79,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/shark/ofw/ofrom.c --- a/sys/arch/shark/ofw/ofrom.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/shark/ofw/ofrom.c Sun Mar 23 23:43:03 2014 -0400 @@ -80,6 +80,7 @@ .d_poll = nopoll, .d_mmap = ofrommmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/shark/shark/opms.c --- a/sys/arch/shark/shark/opms.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/shark/shark/opms.c Sun Mar 23 23:43:03 2014 -0400 @@ -213,6 +213,7 @@ .d_poll = opmspoll, .d_mmap = nommap, .d_kqfilter = opmskqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/shark/shark/profile.c --- a/sys/arch/shark/shark/profile.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/shark/shark/profile.c Sun Mar 23 23:43:03 2014 -0400 @@ -126,6 +126,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/shark/shark/scr.c --- a/sys/arch/shark/shark/scr.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/shark/shark/scr.c Sun Mar 23 23:43:03 2014 -0400 @@ -651,6 +651,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/sparc/dev/cgeight.c --- a/sys/arch/sparc/dev/cgeight.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/sparc/dev/cgeight.c Sun Mar 23 23:43:03 2014 -0400 @@ -164,6 +164,7 @@ .d_poll = nopoll, .d_mmap = cgeightmmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/sparc/dev/cgfour.c --- a/sys/arch/sparc/dev/cgfour.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/sparc/dev/cgfour.c Sun Mar 23 23:43:03 2014 -0400 @@ -163,6 +163,7 @@ .d_poll = nopoll, .d_mmap = cgfourmmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/sparc/dev/cgfourteen.c --- a/sys/arch/sparc/dev/cgfourteen.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/sparc/dev/cgfourteen.c Sun Mar 23 23:43:03 2014 -0400 @@ -130,6 +130,7 @@ .d_poll = cgfourteenpoll, .d_mmap = cgfourteenmmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/sparc/dev/cgtwo.c --- a/sys/arch/sparc/dev/cgtwo.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/sparc/dev/cgtwo.c Sun Mar 23 23:43:03 2014 -0400 @@ -114,6 +114,7 @@ .d_poll = nopoll, .d_mmap = cgtwommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/sparc/dev/fd.c --- a/sys/arch/sparc/dev/fd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/sparc/dev/fd.c Sun Mar 23 23:43:03 2014 -0400 @@ -313,6 +313,7 @@ .d_ioctl = fdioctl, .d_dump = nodump, .d_psize = nosize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -327,6 +328,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/sparc/dev/kd.c --- a/sys/arch/sparc/dev/kd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/sparc/dev/kd.c Sun Mar 23 23:43:03 2014 -0400 @@ -120,6 +120,7 @@ .d_poll = kdpoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/sparc/dev/tctrl.c --- a/sys/arch/sparc/dev/tctrl.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/sparc/dev/tctrl.c Sun Mar 23 23:43:03 2014 -0400 @@ -98,6 +98,7 @@ .d_poll = tctrlpoll, .d_mmap = nommap, .d_kqfilter = tctrlkqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/sparc/sparc/openprom.c --- a/sys/arch/sparc/sparc/openprom.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/sparc/sparc/openprom.c Sun Mar 23 23:43:03 2014 -0400 @@ -73,6 +73,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/sparc64/dev/fdc.c --- a/sys/arch/sparc64/dev/fdc.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/sparc64/dev/fdc.c Sun Mar 23 23:43:03 2014 -0400 @@ -345,6 +345,7 @@ .d_ioctl = fdioctl, .d_dump = nodump, .d_psize = nosize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -359,6 +360,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/sparc64/dev/kd.c --- a/sys/arch/sparc64/dev/kd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/sparc64/dev/kd.c Sun Mar 23 23:43:03 2014 -0400 @@ -83,6 +83,7 @@ .d_poll = kdpoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/sparc64/dev/pcons.c --- a/sys/arch/sparc64/dev/pcons.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/sparc64/dev/pcons.c Sun Mar 23 23:43:03 2014 -0400 @@ -88,6 +88,7 @@ .d_poll = pconspoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/sparc64/dev/sab.c --- a/sys/arch/sparc64/dev/sab.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/sparc64/dev/sab.c Sun Mar 23 23:43:03 2014 -0400 @@ -195,6 +195,7 @@ .d_poll = sabpoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/sun2/dev/kd.c --- a/sys/arch/sun2/dev/kd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/sun2/dev/kd.c Sun Mar 23 23:43:03 2014 -0400 @@ -115,6 +115,7 @@ .d_poll = kdpoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/sun2/dev/pcons.c --- a/sys/arch/sun2/dev/pcons.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/sun2/dev/pcons.c Sun Mar 23 23:43:03 2014 -0400 @@ -91,6 +91,7 @@ .d_poll = pconspoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/sun3/dev/bw2.c --- a/sys/arch/sun3/dev/bw2.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/sun3/dev/bw2.c Sun Mar 23 23:43:03 2014 -0400 @@ -105,6 +105,7 @@ .d_poll = nopoll, .d_mmap = bw2mmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/sun3/dev/cg2.c --- a/sys/arch/sun3/dev/cg2.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/sun3/dev/cg2.c Sun Mar 23 23:43:03 2014 -0400 @@ -115,6 +115,7 @@ .d_poll = nopoll, .d_mmap = cg2mmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/sun3/dev/cg4.c --- a/sys/arch/sun3/dev/cg4.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/sun3/dev/cg4.c Sun Mar 23 23:43:03 2014 -0400 @@ -137,6 +137,7 @@ .d_poll = nopoll, .d_mmap = cg4mmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/sun3/dev/fb.c --- a/sys/arch/sun3/dev/fb.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/sun3/dev/fb.c Sun Mar 23 23:43:03 2014 -0400 @@ -76,6 +76,7 @@ .d_poll = nopoll, .d_mmap = fbmmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/sun3/dev/fd.c --- a/sys/arch/sun3/dev/fd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/sun3/dev/fd.c Sun Mar 23 23:43:03 2014 -0400 @@ -285,6 +285,7 @@ .d_ioctl = fdioctl, .d_dump = nodump, .d_psize = nosize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -299,6 +300,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/sun3/dev/kd.c --- a/sys/arch/sun3/dev/kd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/sun3/dev/kd.c Sun Mar 23 23:43:03 2014 -0400 @@ -105,6 +105,7 @@ .d_poll = kdpoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/sun3/dev/xd.c --- a/sys/arch/sun3/dev/xd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/sun3/dev/xd.c Sun Mar 23 23:43:03 2014 -0400 @@ -292,6 +292,7 @@ .d_ioctl = xdioctl, .d_dump = xddump, .d_psize = xdsize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -306,6 +307,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/sun3/dev/xy.c --- a/sys/arch/sun3/dev/xy.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/sun3/dev/xy.c Sun Mar 23 23:43:03 2014 -0400 @@ -223,6 +223,7 @@ .d_ioctl = xyioctl, .d_dump = xydump, .d_psize = xysize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -237,6 +238,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/usermode/dev/ttycons.c --- a/sys/arch/usermode/dev/ttycons.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/usermode/dev/ttycons.c Sun Mar 23 23:43:03 2014 -0400 @@ -95,6 +95,7 @@ .d_poll = ttycons_poll, .d_kqfilter = ttykqfilter, .d_flag = D_TTY, + .d_discard = nodiscard, }; static void ttycons_start(struct tty *); diff -r e2d38198dabf -r 448164dc52d1 sys/arch/vax/mba/hp.c --- a/sys/arch/vax/mba/hp.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/vax/mba/hp.c Sun Mar 23 23:43:03 2014 -0400 @@ -101,6 +101,7 @@ .d_ioctl = hpioctl, .d_dump = nulldump, .d_psize = hppsize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -115,6 +116,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/vax/uba/qv.c --- a/sys/arch/vax/uba/qv.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/vax/uba/qv.c Sun Mar 23 23:43:03 2014 -0400 @@ -290,6 +290,7 @@ .d_poll = qvpoll, .d_mmap = nommap, .d_kqfilter = qvkqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/vax/vax/cfl.c --- a/sys/arch/vax/vax/cfl.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/vax/vax/cfl.c Sun Mar 23 23:43:03 2014 -0400 @@ -133,6 +133,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/vax/vax/crl.c --- a/sys/arch/vax/vax/crl.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/vax/vax/crl.c Sun Mar 23 23:43:03 2014 -0400 @@ -87,6 +87,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/vax/vax/crx.c --- a/sys/arch/vax/vax/crx.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/vax/vax/crx.c Sun Mar 23 23:43:03 2014 -0400 @@ -69,6 +69,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/vax/vax/ctu.c --- a/sys/arch/vax/vax/ctu.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/vax/vax/ctu.c Sun Mar 23 23:43:03 2014 -0400 @@ -105,6 +105,7 @@ .d_ioctl = noioctl, .d_dump = nodump, .d_psize = nosize, + .d_discard = nodiscard, .d_flag = D_TAPE }; @@ -120,6 +121,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_TAPE }; #endif diff -r e2d38198dabf -r 448164dc52d1 sys/arch/vax/vax/gencons.c --- a/sys/arch/vax/vax/gencons.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/vax/vax/gencons.c Sun Mar 23 23:43:03 2014 -0400 @@ -97,6 +97,7 @@ .d_poll = gencnpoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/vax/vsa/hdc9224.c --- a/sys/arch/vax/vsa/hdc9224.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/vax/vsa/hdc9224.c Sun Mar 23 23:43:03 2014 -0400 @@ -201,6 +201,7 @@ .d_ioctl = rdioctl, .d_dump = nulldump, .d_psize = rdpsize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -215,6 +216,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/x68k/dev/bmd.c --- a/sys/arch/x68k/dev/bmd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/x68k/dev/bmd.c Sun Mar 23 23:43:03 2014 -0400 @@ -112,6 +112,7 @@ .d_ioctl = bmdioctl, .d_dump = bmddump, .d_psize = bmdsize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -126,6 +127,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/x68k/dev/fd.c --- a/sys/arch/x68k/dev/fd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/x68k/dev/fd.c Sun Mar 23 23:43:03 2014 -0400 @@ -277,6 +277,7 @@ .d_ioctl = fdioctl, .d_dump = nodump, .d_psize = nosize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -291,6 +292,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/x68k/dev/grf.c --- a/sys/arch/x68k/dev/grf.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/x68k/dev/grf.c Sun Mar 23 23:43:03 2014 -0400 @@ -109,6 +109,7 @@ .d_poll = nopoll, .d_mmap = grfmmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/x68k/dev/ite.c --- a/sys/arch/x68k/dev/ite.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/x68k/dev/ite.c Sun Mar 23 23:43:03 2014 -0400 @@ -176,6 +176,7 @@ .d_poll = itepoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/x68k/dev/kbd.c --- a/sys/arch/x68k/dev/kbd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/x68k/dev/kbd.c Sun Mar 23 23:43:03 2014 -0400 @@ -106,6 +106,7 @@ .d_poll = kbdpoll, .d_mmap = nommap, .d_kqfilter = kbdkqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/x68k/dev/ms.c --- a/sys/arch/x68k/dev/ms.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/x68k/dev/ms.c Sun Mar 23 23:43:03 2014 -0400 @@ -175,6 +175,7 @@ .d_poll = mspoll, .d_mmap = nommap, .d_kqfilter = mskqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/x68k/dev/opmbell.c --- a/sys/arch/x68k/dev/opmbell.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/x68k/dev/opmbell.c Sun Mar 23 23:43:03 2014 -0400 @@ -127,6 +127,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/x68k/dev/par.c --- a/sys/arch/x68k/dev/par.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/x68k/dev/par.c Sun Mar 23 23:43:03 2014 -0400 @@ -135,6 +135,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/x68k/dev/sram.c --- a/sys/arch/x68k/dev/sram.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/x68k/dev/sram.c Sun Mar 23 23:43:03 2014 -0400 @@ -85,6 +85,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/xen/xen/xbd_xenbus.c --- a/sys/arch/xen/xen/xbd_xenbus.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/xen/xen/xbd_xenbus.c Sun Mar 23 23:43:03 2014 -0400 @@ -197,6 +197,7 @@ .d_ioctl = xbdioctl, .d_dump = xbddump, .d_psize = xbdsize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -211,6 +212,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/xen/xen/xencons.c --- a/sys/arch/xen/xen/xencons.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/xen/xen/xencons.c Sun Mar 23 23:43:03 2014 -0400 @@ -132,6 +132,7 @@ .d_poll = xencons_poll, .d_mmap = NULL, /* XXX: is this safe? - dholland 20140315 */ .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/arch/xen/xen/xenevt.c --- a/sys/arch/xen/xen/xenevt.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/arch/xen/xen/xenevt.c Sun Mar 23 23:43:03 2014 -0400 @@ -98,6 +98,7 @@ .d_poll = nopoll, .d_mmap = xenevtmmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/coda/coda_psdev.c --- a/sys/coda/coda_psdev.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/coda/coda_psdev.c Sun Mar 23 23:43:03 2014 -0400 @@ -121,6 +121,7 @@ .d_poll = vc_nb_poll, .d_mmap = nommap, .d_kqfilter = vc_nb_kqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER, }; diff -r e2d38198dabf -r 448164dc52d1 sys/coda/coda_vnops.c --- a/sys/coda/coda_vnops.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/coda/coda_vnops.c Sun Mar 23 23:43:03 2014 -0400 @@ -109,6 +109,8 @@ { &vop_setattr_desc, coda_setattr }, /* setattr */ { &vop_read_desc, coda_read }, /* read */ { &vop_write_desc, coda_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_ioctl_desc, coda_ioctl }, /* ioctl */ { &vop_mmap_desc, genfs_mmap }, /* mmap */ diff -r e2d38198dabf -r 448164dc52d1 sys/compat/svr4/svr4_net.c --- a/sys/compat/svr4/svr4_net.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/compat/svr4/svr4_net.c Sun Mar 23 23:43:03 2014 -0400 @@ -86,6 +86,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER, }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/altmem/altmem.c --- a/sys/dev/altmem/altmem.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/altmem/altmem.c Sun Mar 23 23:43:03 2014 -0400 @@ -66,6 +66,7 @@ .d_ioctl = altmemioctl, .d_dump = nodump, .d_psize = altmemsize, + .d_discard = nodiscard, .d_flag = D_DISK }; const struct cdevsw altmem_cdevsw = { @@ -79,6 +80,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; static struct dkdriver altmemdkdriver = { altmemstrategy, minphys }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/apm/apm.c --- a/sys/dev/apm/apm.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/apm/apm.c Sun Mar 23 23:43:03 2014 -0400 @@ -124,6 +124,7 @@ .d_poll = apmpoll, .d_mmap = nommap, .d_kqfilter = apmkqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER, }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/arcbios/arcbios_tty.c --- a/sys/dev/arcbios/arcbios_tty.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/arcbios/arcbios_tty.c Sun Mar 23 23:43:03 2014 -0400 @@ -74,6 +74,7 @@ .d_poll = arcbios_ttypoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY, }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/ata/ata.c --- a/sys/dev/ata/ata.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/ata/ata.c Sun Mar 23 23:43:03 2014 -0400 @@ -116,6 +116,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/ata/wd.c --- a/sys/dev/ata/wd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/ata/wd.c Sun Mar 23 23:43:03 2014 -0400 @@ -140,6 +140,7 @@ dev_type_strategy(wdstrategy); dev_type_dump(wddump); dev_type_size(wdsize); +static dev_type_discard(wddiscard); const struct bdevsw wd_bdevsw = { .d_open = wdopen, @@ -148,6 +149,7 @@ .d_ioctl = wdioctl, .d_dump = wddump, .d_psize = wdsize, + .d_discard = wddiscard, .d_flag = D_DISK }; @@ -162,6 +164,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -193,7 +196,7 @@ void wddone(void *); int wd_get_params(struct wd_softc *, u_int8_t, struct ataparams *); int wd_flushcache(struct wd_softc *, int); -int wd_trim(struct wd_softc *, int, struct disk_discard_range *); +int wd_trim(struct wd_softc *, int, daddr_t, long); bool wd_shutdown(device_t, int); int wd_getcache(struct wd_softc *, int *); @@ -1549,20 +1552,6 @@ return 0; } - case DIOCGDISCARDPARAMS: { - struct disk_discard_params * tp; - - if (!(wd->sc_params.atap_ata_major & WDC_VER_ATA7) - || !(wd->sc_params.support_dsm & ATA_SUPPORT_DSM_TRIM)) - return ENOTTY; - tp = (struct disk_discard_params *)addr; - tp->maxsize = 0xffff; /*wd->sc_params.max_dsm_blocks*/ - aprint_debug_dev(wd->sc_dev, "TRIM maxsize %ld\n", tp->maxsize); - return 0; - } - case DIOCDISCARD: - return wd_trim(wd, WDPART(dev), (struct disk_discard_range *)addr); - default: return ENOTTY; } @@ -1572,6 +1561,47 @@ #endif } +static int +wddiscard(dev_t dev, off_t pos, off_t len) +{ + struct wd_softc *wd = device_lookup_private(&wd_cd, WDUNIT(dev)); + daddr_t bno; + long size, done; + long maxatonce, amount; + int result; + + if (!(wd->sc_params.atap_ata_major & WDC_VER_ATA7) + || !(wd->sc_params.support_dsm & ATA_SUPPORT_DSM_TRIM)) { + /* not supported; ignore request */ + ATADEBUG_PRINT(("wddiscard (unsupported)\n"), DEBUG_FUNCS); + return 0; + } + maxatonce = 0xffff; /*wd->sc_params.max_dsm_blocks*/ + + ATADEBUG_PRINT(("wddiscard\n"), DEBUG_FUNCS); + + if ((wd->sc_flags & WDF_LOADED) == 0) + return EIO; + + /* round the start up and the end down */ + bno = (pos + DEV_BSIZE - 1) >> DEV_BSHIFT; + size = ((pos + len) >> DEV_BSHIFT) - bno; + + done = 0; + while (done < size) { + amount = size - done; + if (amount > maxatonce) { + amount = maxatonce; + } + result = wd_trim(wd, WDPART(dev), bno + done, amount); + if (result) { + return result; + } + done += amount; + } + return 0; +} + #ifdef B_FORMAT int wdformat(struct buf *bp) @@ -1938,11 +1968,10 @@ } int -wd_trim(struct wd_softc *wd, int part, struct disk_discard_range *tr) +wd_trim(struct wd_softc *wd, int part, daddr_t bno, long size) { struct ata_command ata_c; unsigned char *req; - daddr_t bno = tr->bno; if (part != RAW_PART) bno += wd->sc_dk.dk_label->d_partitions[part].p_offset;; @@ -1954,8 +1983,8 @@ req[3] = (bno >> 24) & 0xff; req[4] = (bno >> 32) & 0xff; req[5] = (bno >> 40) & 0xff; - req[6] = tr->size & 0xff; - req[7] = (tr->size >> 8) & 0xff; + req[6] = size & 0xff; + req[7] = (size >> 8) & 0xff; memset(&ata_c, 0, sizeof(struct ata_command)); ata_c.r_command = ATA_DATA_SET_MANAGEMENT; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/audio.c --- a/sys/dev/audio.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/audio.c Sun Mar 23 23:43:03 2014 -0400 @@ -359,6 +359,7 @@ .d_poll = audiopoll, .d_mmap = audiommap, .d_kqfilter = audiokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER | D_MPSAFE }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/bio.c --- a/sys/dev/bio.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/bio.c Sun Mar 23 23:43:03 2014 -0400 @@ -78,6 +78,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER | D_MPSAFE }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/bluetooth/bthub.c --- a/sys/dev/bluetooth/bthub.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/bluetooth/bthub.c Sun Mar 23 23:43:03 2014 -0400 @@ -80,6 +80,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER, }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/ccd.c --- a/sys/dev/ccd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/ccd.c Sun Mar 23 23:43:03 2014 -0400 @@ -185,6 +185,7 @@ .d_ioctl = ccdioctl, .d_dump = nodump, .d_psize = ccdsize, + .d_discard = nodiscard, .d_flag = D_DISK | D_MPSAFE }; @@ -199,6 +200,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK | D_MPSAFE }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/cgd.c --- a/sys/dev/cgd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/cgd.c Sun Mar 23 23:43:03 2014 -0400 @@ -75,6 +75,7 @@ .d_ioctl = cgdioctl, .d_dump = cgddump, .d_psize = cgdsize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -89,6 +90,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/clockctl.c --- a/sys/dev/clockctl.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/clockctl.c Sun Mar 23 23:43:03 2014 -0400 @@ -67,6 +67,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER, }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/cons.c --- a/sys/dev/cons.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/cons.c Sun Mar 23 23:43:03 2014 -0400 @@ -77,6 +77,7 @@ .d_poll = cnpoll, .d_mmap = nommap, .d_kqfilter = cnkqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/dec/dz.c --- a/sys/dev/dec/dz.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/dec/dz.c Sun Mar 23 23:43:03 2014 -0400 @@ -197,6 +197,7 @@ .d_poll = dzpoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/dkwedge/dk.c --- a/sys/dev/dkwedge/dk.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/dkwedge/dk.c Sun Mar 23 23:43:03 2014 -0400 @@ -108,6 +108,7 @@ static dev_type_strategy(dkstrategy); static dev_type_dump(dkdump); static dev_type_size(dksize); +static dev_type_discard(dkdiscard); const struct bdevsw dk_bdevsw = { .d_open = dkopen, @@ -116,6 +117,7 @@ .d_ioctl = dkioctl, .d_dump = dkdump, .d_psize = dksize, + .d_discard = dkdiscard, .d_flag = D_DISK }; @@ -130,6 +132,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -1339,6 +1342,26 @@ } /* + * dkdiscard: [devsw entry point] + * + * Perform a discard-range request on a wedge. + */ +static int +dkdiscard(dev_t dev, off_t pos, off_t len) +{ + struct dkwedge_softc *sc = dkwedge_lookup(dev); + + if (sc == NULL) + return (ENODEV); + if (sc->sc_state != DKW_STATE_RUNNING) + return (ENXIO); + if (sc->sc_parent->dk_rawvp == NULL) + return (ENXIO); + + return VOP_FDISCARD(sc->sc_parent->dk_rawvp, pos, len); +} + +/* * dksize: [devsw entry point] * * Query the size of a wedge for the purpose of performing a dump diff -r e2d38198dabf -r 448164dc52d1 sys/dev/dm/device-mapper.c --- a/sys/dev/dm/device-mapper.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/dm/device-mapper.c Sun Mar 23 23:43:03 2014 -0400 @@ -84,6 +84,7 @@ .d_ioctl = dmioctl, .d_dump = nodump, .d_psize = dmsize, + .d_discard = nodiscard, .d_flag = D_DISK | D_MPSAFE }; @@ -98,6 +99,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK | D_MPSAFE }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/dmover/dmover_io.c --- a/sys/dev/dmover/dmover_io.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/dmover/dmover_io.c Sun Mar 23 23:43:03 2014 -0400 @@ -143,6 +143,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/dtv/dtv_device.c --- a/sys/dev/dtv/dtv_device.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/dtv/dtv_device.c Sun Mar 23 23:43:03 2014 -0400 @@ -64,6 +64,7 @@ .d_poll = dtvpoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER | D_MPSAFE, }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/filemon/filemon.c --- a/sys/dev/filemon/filemon.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/filemon/filemon.c Sun Mar 23 23:43:03 2014 -0400 @@ -60,6 +60,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_MPSAFE }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/flash/flash.c --- a/sys/dev/flash/flash.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/flash/flash.c Sun Mar 23 23:43:03 2014 -0400 @@ -98,6 +98,7 @@ .d_ioctl = flashioctl, .d_dump = flashdump, .d_psize = nosize, + .d_discard = nodiscard, /* XXX this driver probably wants a discard */ .d_flag = D_DISK | D_MPSAFE }; @@ -115,6 +116,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK | D_MPSAFE }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/fss.c --- a/sys/dev/fss.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/fss.c Sun Mar 23 23:43:03 2014 -0400 @@ -101,9 +101,11 @@ const struct bdevsw fss_bdevsw = { .d_open = fss_open, .d_close = fss_close, - .d_strategy = fss_strategy, fss_ioctl, + .d_strategy = fss_strategy, + .d_ioctl = fss_ioctl, .d_dump = fss_dump, .d_psize = fss_size, + .d_discard = nodiscard, .d_flag = D_DISK | D_MPSAFE }; @@ -118,6 +120,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK | D_MPSAFE }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/gpib/ct.c --- a/sys/dev/gpib/ct.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/gpib/ct.c Sun Mar 23 23:43:03 2014 -0400 @@ -187,6 +187,7 @@ .d_ioctl = ctioctl, .d_dump = nodump, .d_psize = nosize, + .d_discard = nodiscard, .d_flag = D_TAPE }; @@ -201,6 +202,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_TAPE }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/gpib/gpib.c --- a/sys/dev/gpib/gpib.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/gpib/gpib.c Sun Mar 23 23:43:03 2014 -0400 @@ -88,6 +88,7 @@ .d_poll = gpibpoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/gpib/mt.c --- a/sys/dev/gpib/mt.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/gpib/mt.c Sun Mar 23 23:43:03 2014 -0400 @@ -167,6 +167,7 @@ .d_ioctl = mtioctl, .d_dump = nodump, .d_psize = nosize, + .d_discard = nodiscard, .d_flag = D_TAPE }; @@ -181,6 +182,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_TAPE }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/gpib/ppi.c --- a/sys/dev/gpib/ppi.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/gpib/ppi.c Sun Mar 23 23:43:03 2014 -0400 @@ -136,6 +136,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/gpib/rd.c --- a/sys/dev/gpib/rd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/gpib/rd.c Sun Mar 23 23:43:03 2014 -0400 @@ -261,6 +261,7 @@ .d_ioctl = rdioctl, .d_dump = rddump, .d_psize = rdsize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -275,6 +276,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/gpio/gpio.c --- a/sys/dev/gpio/gpio.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/gpio/gpio.c Sun Mar 23 23:43:03 2014 -0400 @@ -110,6 +110,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER | D_MPSAFE }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/hpc/apm/apmdev.c --- a/sys/dev/hpc/apm/apmdev.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/hpc/apm/apmdev.c Sun Mar 23 23:43:03 2014 -0400 @@ -132,6 +132,7 @@ .d_poll = apmdevpoll, .d_mmap = nommap, .d_kqfilter = apmdevkqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/hpc/biconsdev.c --- a/sys/dev/hpc/biconsdev.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/hpc/biconsdev.c Sun Mar 23 23:43:03 2014 -0400 @@ -106,6 +106,7 @@ .d_poll = biconsdevpoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/hpc/btnmgr.c --- a/sys/dev/hpc/btnmgr.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/hpc/btnmgr.c Sun Mar 23 23:43:03 2014 -0400 @@ -111,6 +111,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; #endif /* notyet */ diff -r e2d38198dabf -r 448164dc52d1 sys/dev/i2c/at24cxx.c --- a/sys/dev/i2c/at24cxx.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/i2c/at24cxx.c Sun Mar 23 23:43:03 2014 -0400 @@ -104,6 +104,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/i2c/ds1307.c --- a/sys/dev/i2c/ds1307.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/i2c/ds1307.c Sun Mar 23 23:43:03 2014 -0400 @@ -127,6 +127,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/i2c/i2c.c --- a/sys/dev/i2c/i2c.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/i2c/i2c.c Sun Mar 23 23:43:03 2014 -0400 @@ -78,6 +78,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/i2c/m41st84.c --- a/sys/dev/i2c/m41st84.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/i2c/m41st84.c Sun Mar 23 23:43:03 2014 -0400 @@ -88,6 +88,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; #endif diff -r e2d38198dabf -r 448164dc52d1 sys/dev/i2c/m41t00.c --- a/sys/dev/i2c/m41t00.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/i2c/m41t00.c Sun Mar 23 23:43:03 2014 -0400 @@ -86,6 +86,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/i2c/max6900.c --- a/sys/dev/i2c/max6900.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/i2c/max6900.c Sun Mar 23 23:43:03 2014 -0400 @@ -83,6 +83,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/i2c/pcf8583.c --- a/sys/dev/i2c/pcf8583.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/i2c/pcf8583.c Sun Mar 23 23:43:03 2014 -0400 @@ -91,6 +91,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/i2c/x1226.c --- a/sys/dev/i2c/x1226.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/i2c/x1226.c Sun Mar 23 23:43:03 2014 -0400 @@ -83,6 +83,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/i2o/dpti.c --- a/sys/dev/i2o/dpti.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/i2o/dpti.c Sun Mar 23 23:43:03 2014 -0400 @@ -147,6 +147,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER, }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/i2o/iop.c --- a/sys/dev/i2o/iop.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/i2o/iop.c Sun Mar 23 23:43:03 2014 -0400 @@ -106,6 +106,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER, }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/ic/cd18xx.c --- a/sys/dev/ic/cd18xx.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/ic/cd18xx.c Sun Mar 23 23:43:03 2014 -0400 @@ -148,6 +148,7 @@ .d_poll = cdttypoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/ic/clmpcc.c --- a/sys/dev/ic/clmpcc.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/ic/clmpcc.c Sun Mar 23 23:43:03 2014 -0400 @@ -106,6 +106,7 @@ .d_poll = clmpccpoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/ic/com.c --- a/sys/dev/ic/com.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/ic/com.c Sun Mar 23 23:43:03 2014 -0400 @@ -225,6 +225,7 @@ .d_poll = compoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/ic/cy.c --- a/sys/dev/ic/cy.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/ic/cy.c Sun Mar 23 23:43:03 2014 -0400 @@ -68,6 +68,7 @@ .d_poll = cypoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/ic/dpt.c --- a/sys/dev/ic/dpt.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/ic/dpt.c Sun Mar 23 23:43:03 2014 -0400 @@ -147,6 +147,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER, }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/ic/icp_ioctl.c --- a/sys/dev/ic/icp_ioctl.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/ic/icp_ioctl.c Sun Mar 23 23:43:03 2014 -0400 @@ -103,6 +103,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/ic/joy.c --- a/sys/dev/ic/joy.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/ic/joy.c Sun Mar 23 23:43:03 2014 -0400 @@ -112,6 +112,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER | D_MPSAFE }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/ic/lpt.c --- a/sys/dev/ic/lpt.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/ic/lpt.c Sun Mar 23 23:43:03 2014 -0400 @@ -106,6 +106,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/ic/mfi.c --- a/sys/dev/ic/mfi.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/ic/mfi.c Sun Mar 23 23:43:03 2014 -0400 @@ -194,6 +194,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/ic/mlx.c --- a/sys/dev/ic/mlx.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/ic/mlx.c Sun Mar 23 23:43:03 2014 -0400 @@ -141,6 +141,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/ic/rrunner.c --- a/sys/dev/ic/rrunner.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/ic/rrunner.c Sun Mar 23 23:43:03 2014 -0400 @@ -134,6 +134,7 @@ .d_mmap = nommap, #endif .d_kqfilter = nullkqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/ic/tpm.c --- a/sys/dev/ic/tpm.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/ic/tpm.c Sun Mar 23 23:43:03 2014 -0400 @@ -88,6 +88,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER, }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/ic/z8530tty.c --- a/sys/dev/ic/z8530tty.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/ic/z8530tty.c Sun Mar 23 23:43:03 2014 -0400 @@ -262,6 +262,7 @@ .d_poll = zspoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/ieee1394/fwdev.c --- a/sys/dev/ieee1394/fwdev.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/ieee1394/fwdev.c Sun Mar 23 23:43:03 2014 -0400 @@ -78,6 +78,7 @@ .d_ioctl = fw_ioctl, .d_dump = nodump, .d_psize = nosize, + .d_discard = nodiscard, .d_flag = D_OTHER }; @@ -92,6 +93,7 @@ .d_poll = fw_poll, .d_mmap = fw_mmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/ir/cir.c --- a/sys/dev/ir/cir.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/ir/cir.c Sun Mar 23 23:43:03 2014 -0400 @@ -65,6 +65,7 @@ .d_poll = cirpoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/ir/irframe.c --- a/sys/dev/ir/irframe.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/ir/irframe.c Sun Mar 23 23:43:03 2014 -0400 @@ -77,6 +77,7 @@ .d_poll = irframepoll, .d_mmap = nommap, .d_kqfilter = irframekqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/isa/fd.c --- a/sys/dev/isa/fd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/isa/fd.c Sun Mar 23 23:43:03 2014 -0400 @@ -230,6 +230,7 @@ .d_ioctl = fdioctl, .d_dump = nodump, .d_psize = nosize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -244,6 +245,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/isa/isv.c --- a/sys/dev/isa/isv.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/isa/isv.c Sun Mar 23 23:43:03 2014 -0400 @@ -115,6 +115,7 @@ .d_poll = nopoll, .d_mmap = isv_mmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/isa/mcd.c --- a/sys/dev/isa/mcd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/isa/mcd.c Sun Mar 23 23:43:03 2014 -0400 @@ -214,6 +214,7 @@ .d_ioctl = mcdioctl, .d_dump = mcddump, .d_psize = mcdsize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -228,6 +229,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/isa/satlink.c --- a/sys/dev/isa/satlink.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/isa/satlink.c Sun Mar 23 23:43:03 2014 -0400 @@ -119,6 +119,7 @@ .d_poll = satlinkpoll, .d_mmap = nommap, .d_kqfilter = satlinkkqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/isa/spkr.c --- a/sys/dev/isa/spkr.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/isa/spkr.c Sun Mar 23 23:43:03 2014 -0400 @@ -84,6 +84,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/isa/wt.c --- a/sys/dev/isa/wt.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/isa/wt.c Sun Mar 23 23:43:03 2014 -0400 @@ -164,6 +164,7 @@ .d_ioctl = wtioctl, .d_dump = wtdump, .d_psize = wtsize, + .d_discard = nodiscard, .d_flag = D_TAPE }; @@ -178,6 +179,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_TAPE }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/iscsi/iscsi_main.c --- a/sys/dev/iscsi/iscsi_main.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/iscsi/iscsi_main.c Sun Mar 23 23:43:03 2014 -0400 @@ -100,6 +100,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/kttcp.c --- a/sys/dev/kttcp.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/kttcp.c Sun Mar 23 23:43:03 2014 -0400 @@ -85,6 +85,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/ld.c --- a/sys/dev/ld.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/ld.c Sun Mar 23 23:43:03 2014 -0400 @@ -88,6 +88,7 @@ .d_ioctl = ldioctl, .d_dump = lddump, .d_psize = ldsize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -102,6 +103,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/lockstat.c --- a/sys/dev/lockstat.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/lockstat.c Sun Mar 23 23:43:03 2014 -0400 @@ -121,6 +121,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER | D_MPSAFE }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/marvell/gtmpsc.c --- a/sys/dev/marvell/gtmpsc.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/marvell/gtmpsc.c Sun Mar 23 23:43:03 2014 -0400 @@ -168,6 +168,7 @@ .d_poll = gtmpscpoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/mca/ed_mca.c --- a/sys/dev/mca/ed_mca.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/mca/ed_mca.c Sun Mar 23 23:43:03 2014 -0400 @@ -102,6 +102,7 @@ .d_ioctl = edmcaioctl, .d_dump = edmcadump, .d_psize = edmcasize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -116,6 +117,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/md.c --- a/sys/dev/md.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/md.c Sun Mar 23 23:43:03 2014 -0400 @@ -113,6 +113,7 @@ .d_ioctl = mdioctl, .d_dump = nodump, .d_psize = mdsize, + .d_discard = nodiscard, .d_flag = D_DISK | D_MPSAFE }; @@ -127,6 +128,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/midi.c --- a/sys/dev/midi.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/midi.c Sun Mar 23 23:43:03 2014 -0400 @@ -119,6 +119,7 @@ .d_poll = midipoll, .d_mmap = nommap, .d_kqfilter = midikqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER | D_MPSAFE }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/mm.c --- a/sys/dev/mm.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/mm.c Sun Mar 23 23:43:03 2014 -0400 @@ -73,6 +73,7 @@ .d_poll = nopoll, .d_mmap = mm_mmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_MPSAFE }; @@ -88,6 +89,7 @@ .d_poll = nopoll, .d_mmap = mm_mmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_MPSAFE }; #endif diff -r e2d38198dabf -r 448164dc52d1 sys/dev/mscp/mscp_disk.c --- a/sys/dev/mscp/mscp_disk.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/mscp/mscp_disk.c Sun Mar 23 23:43:03 2014 -0400 @@ -163,6 +163,7 @@ .d_ioctl = raioctl, .d_dump = radump, .d_psize = rasize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -177,6 +178,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -584,6 +586,7 @@ .d_ioctl = rxioctl, .d_dump = radump, .d_psize = rxsize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -598,6 +601,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -655,6 +659,7 @@ .d_ioctl = raioctl, .d_dump = radump, .d_psize = rasize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -669,6 +674,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/mscp/mscp_tape.c --- a/sys/dev/mscp/mscp_tape.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/mscp/mscp_tape.c Sun Mar 23 23:43:03 2014 -0400 @@ -130,6 +130,7 @@ .d_ioctl = mtioctl, .d_dump = mtdump, .d_psize = nosize, + .d_discard = nodiscard, .d_flag = D_TAPE }; @@ -144,6 +145,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_TAPE }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/mvme/lpt_mvme.c --- a/sys/dev/mvme/lpt_mvme.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/mvme/lpt_mvme.c Sun Mar 23 23:43:03 2014 -0400 @@ -140,6 +140,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/nullcons_subr.c --- a/sys/dev/nullcons_subr.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/nullcons_subr.c Sun Mar 23 23:43:03 2014 -0400 @@ -62,6 +62,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/ofw/ofcons.c --- a/sys/dev/ofw/ofcons.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/ofw/ofcons.c Sun Mar 23 23:43:03 2014 -0400 @@ -88,6 +88,7 @@ .d_poll = ofcons_poll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/ofw/ofdisk.c --- a/sys/dev/ofw/ofdisk.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/ofw/ofdisk.c Sun Mar 23 23:43:03 2014 -0400 @@ -87,6 +87,7 @@ .d_ioctl = ofdisk_ioctl, .d_dump = ofdisk_dump, .d_psize = ofdisk_size, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -101,6 +102,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/ofw/openfirmio.c --- a/sys/dev/ofw/openfirmio.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/ofw/openfirmio.c Sun Mar 23 23:43:03 2014 -0400 @@ -76,6 +76,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/onewire/onewire.c --- a/sys/dev/onewire/onewire.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/onewire/onewire.c Sun Mar 23 23:43:03 2014 -0400 @@ -90,6 +90,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/pad/pad.c --- a/sys/dev/pad/pad.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/pad/pad.c Sun Mar 23 23:43:03 2014 -0400 @@ -133,6 +133,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER | D_MPSAFE, }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/pci/agp.c --- a/sys/dev/pci/agp.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/pci/agp.c Sun Mar 23 23:43:03 2014 -0400 @@ -1112,6 +1112,7 @@ .d_poll = nopoll, .d_mmap = agpmmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/pci/amr.c --- a/sys/dev/pci/amr.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/pci/amr.c Sun Mar 23 23:43:03 2014 -0400 @@ -126,6 +126,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/pci/bktr/bktr_os.c --- a/sys/dev/pci/bktr/bktr_os.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/pci/bktr/bktr_os.c Sun Mar 23 23:43:03 2014 -0400 @@ -190,6 +190,7 @@ .d_poll = nopoll, .d_mmap = bktr_mmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; #endif /* __NetBSD __ */ diff -r e2d38198dabf -r 448164dc52d1 sys/dev/pci/cz.c --- a/sys/dev/pci/cz.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/pci/cz.c Sun Mar 23 23:43:03 2014 -0400 @@ -1545,6 +1545,7 @@ .d_poll = czttypoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/pci/hdaudio/hdaudio.c --- a/sys/dev/pci/hdaudio/hdaudio.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/pci/hdaudio/hdaudio.c Sun Mar 23 23:43:03 2014 -0400 @@ -68,6 +68,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/pci/mly.c --- a/sys/dev/pci/mly.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/pci/mly.c Sun Mar 23 23:43:03 2014 -0400 @@ -172,6 +172,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/pci/pci_usrreq.c --- a/sys/dev/pci/pci_usrreq.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/pci/pci_usrreq.c Sun Mar 23 23:43:03 2014 -0400 @@ -180,6 +180,7 @@ .d_poll = nopoll, .d_mmap = pcimmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/pci/twa.c --- a/sys/dev/pci/twa.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/pci/twa.c Sun Mar 23 23:43:03 2014 -0400 @@ -2283,6 +2283,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/pci/twe.c --- a/sys/dev/pci/twe.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/pci/twe.c Sun Mar 23 23:43:03 2014 -0400 @@ -1891,6 +1891,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/ppbus/lpt.c --- a/sys/dev/ppbus/lpt.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/ppbus/lpt.c Sun Mar 23 23:43:03 2014 -0400 @@ -120,6 +120,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/ppbus/pps_ppbus.c --- a/sys/dev/ppbus/pps_ppbus.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/ppbus/pps_ppbus.c Sun Mar 23 23:43:03 2014 -0400 @@ -72,6 +72,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/putter/putter.c --- a/sys/dev/putter/putter.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/putter/putter.c Sun Mar 23 23:43:03 2014 -0400 @@ -72,6 +72,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/qbus/dhu.c --- a/sys/dev/qbus/dhu.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/qbus/dhu.c Sun Mar 23 23:43:03 2014 -0400 @@ -203,6 +203,7 @@ .d_poll = dhupoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/qbus/dl.c --- a/sys/dev/qbus/dl.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/qbus/dl.c Sun Mar 23 23:43:03 2014 -0400 @@ -168,6 +168,7 @@ .d_poll = dlpoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/qbus/qd.c --- a/sys/dev/qbus/qd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/qbus/qd.c Sun Mar 23 23:43:03 2014 -0400 @@ -354,6 +354,7 @@ .d_poll = qdpoll, .d_mmap = nommap, .d_kqfilter = qdkqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/qbus/rf.c --- a/sys/dev/qbus/rf.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/qbus/rf.c Sun Mar 23 23:43:03 2014 -0400 @@ -123,6 +123,7 @@ .d_ioctl = rfioctl, .d_dump = rfdump, .d_psize = rfsize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -137,6 +138,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/qbus/rl.c --- a/sys/dev/qbus/rl.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/qbus/rl.c Sun Mar 23 23:43:03 2014 -0400 @@ -102,6 +102,7 @@ .d_ioctl = rlioctl, .d_dump = rldump, .d_psize = rlpsize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -116,6 +117,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/qbus/ts.c --- a/sys/dev/qbus/ts.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/qbus/ts.c Sun Mar 23 23:43:03 2014 -0400 @@ -183,6 +183,7 @@ .d_ioctl = tsioctl, .d_dump = tsdump, .d_psize = nosize, + .d_discard = nodiscard, .d_flag = D_TAPE }; @@ -197,6 +198,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_TAPE }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/radio.c --- a/sys/dev/radio.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/radio.c Sun Mar 23 23:43:03 2014 -0400 @@ -73,6 +73,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER, }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/raidframe/rf_netbsdkintf.c --- a/sys/dev/raidframe/rf_netbsdkintf.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/raidframe/rf_netbsdkintf.c Sun Mar 23 23:43:03 2014 -0400 @@ -211,6 +211,7 @@ .d_ioctl = raidioctl, .d_dump = raiddump, .d_psize = raidsize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -225,6 +226,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/rndpseudo.c --- a/sys/dev/rndpseudo.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/rndpseudo.c Sun Mar 23 23:43:03 2014 -0400 @@ -137,6 +137,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER | D_MPSAFE }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/sbus/bpp.c --- a/sys/dev/sbus/bpp.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/sbus/bpp.c Sun Mar 23 23:43:03 2014 -0400 @@ -136,6 +136,7 @@ .d_poll = bpppoll, .d_mmap = nommap, .d_kqfilter = bppkqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/sbus/magma.c --- a/sys/dev/sbus/magma.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/sbus/magma.c Sun Mar 23 23:43:03 2014 -0400 @@ -198,6 +198,7 @@ .d_poll = mttypoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; @@ -217,6 +218,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/sbus/p9100.c --- a/sys/dev/sbus/p9100.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/sbus/p9100.c Sun Mar 23 23:43:03 2014 -0400 @@ -183,6 +183,7 @@ .d_poll = nopoll, .d_mmap = p9100mmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/sbus/spif.c --- a/sys/dev/sbus/spif.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/sbus/spif.c Sun Mar 23 23:43:03 2014 -0400 @@ -104,6 +104,7 @@ .d_poll = stty_poll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; @@ -125,6 +126,7 @@ .d_poll = sbpp_poll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/sbus/tcx.c --- a/sys/dev/sbus/tcx.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/sbus/tcx.c Sun Mar 23 23:43:03 2014 -0400 @@ -168,6 +168,7 @@ .d_poll = nopoll, .d_mmap = tcxmmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/scsipi/cd.c --- a/sys/dev/scsipi/cd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/scsipi/cd.c Sun Mar 23 23:43:03 2014 -0400 @@ -210,6 +210,7 @@ .d_ioctl = cdioctl, .d_dump = cddump, .d_psize = cdsize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -224,6 +225,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/scsipi/ch.c --- a/sys/dev/scsipi/ch.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/scsipi/ch.c Sun Mar 23 23:43:03 2014 -0400 @@ -131,6 +131,7 @@ .d_poll = chpoll, .d_mmap = nommap, .d_kqfilter = chkqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/scsipi/if_se.c --- a/sys/dev/scsipi/if_se.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/scsipi/if_se.c Sun Mar 23 23:43:03 2014 -0400 @@ -247,6 +247,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/scsipi/scsiconf.c --- a/sys/dev/scsipi/scsiconf.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/scsipi/scsiconf.c Sun Mar 23 23:43:03 2014 -0400 @@ -116,6 +116,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/scsipi/sd.c --- a/sys/dev/scsipi/sd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/scsipi/sd.c Sun Mar 23 23:43:03 2014 -0400 @@ -163,6 +163,7 @@ .d_ioctl = sdioctl, .d_dump = sddump, .d_psize = sdsize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -177,6 +178,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/scsipi/ses.c --- a/sys/dev/scsipi/ses.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/scsipi/ses.c Sun Mar 23 23:43:03 2014 -0400 @@ -147,6 +147,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/scsipi/ss.c --- a/sys/dev/scsipi/ss.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/scsipi/ss.c Sun Mar 23 23:43:03 2014 -0400 @@ -99,6 +99,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/scsipi/st.c --- a/sys/dev/scsipi/st.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/scsipi/st.c Sun Mar 23 23:43:03 2014 -0400 @@ -111,6 +111,7 @@ .d_ioctl = stioctl, .d_dump = stdump, .d_psize = nosize, + .d_discard = nodiscard, .d_flag = D_TAPE }; @@ -125,6 +126,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_TAPE }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/scsipi/uk.c --- a/sys/dev/scsipi/uk.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/scsipi/uk.c Sun Mar 23 23:43:03 2014 -0400 @@ -86,6 +86,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/sequencer.c --- a/sys/dev/sequencer.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/sequencer.c Sun Mar 23 23:43:03 2014 -0400 @@ -167,6 +167,7 @@ .d_poll = sequencerpoll, .d_mmap = nommap, .d_kqfilter = sequencerkqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER | D_MPSAFE }; static LIST_HEAD(, sequencer_softc) sequencers = LIST_HEAD_INITIALIZER(sequencers); @@ -1605,6 +1606,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER | D_MPSAFE }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/spi/spiflash.c --- a/sys/dev/spi/spiflash.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/spi/spiflash.c Sun Mar 23 23:43:03 2014 -0400 @@ -147,6 +147,7 @@ .d_ioctl = spiflash_ioctl, .d_dump = nodump, .d_psize = nosize, + .d_discard = nodiscard, .d_flag = D_DISK, }; @@ -161,6 +162,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK, }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/sun/bwtwo.c --- a/sys/dev/sun/bwtwo.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/sun/bwtwo.c Sun Mar 23 23:43:03 2014 -0400 @@ -126,6 +126,7 @@ .d_poll = nopoll, .d_mmap = bwtwommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/sun/cgsix.c --- a/sys/dev/sun/cgsix.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/sun/cgsix.c Sun Mar 23 23:43:03 2014 -0400 @@ -135,6 +135,7 @@ .d_poll = nopoll, .d_mmap = cgsixmmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/sun/cgthree.c --- a/sys/dev/sun/cgthree.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/sun/cgthree.c Sun Mar 23 23:43:03 2014 -0400 @@ -91,6 +91,7 @@ .d_poll = nopoll, .d_mmap = cgthreemmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/sun/fb.c --- a/sys/dev/sun/fb.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/sun/fb.c Sun Mar 23 23:43:03 2014 -0400 @@ -97,6 +97,7 @@ .d_poll = fbpoll, .d_mmap = fbmmap, .d_kqfilter = fbkqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/sun/kbd.c --- a/sys/dev/sun/kbd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/sun/kbd.c Sun Mar 23 23:43:03 2014 -0400 @@ -99,6 +99,7 @@ .d_poll = kbdpoll, .d_mmap = nommap, .d_kqfilter = kbdkqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/sun/ms.c --- a/sys/dev/sun/ms.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/sun/ms.c Sun Mar 23 23:43:03 2014 -0400 @@ -100,6 +100,7 @@ .d_poll = mspoll, .d_mmap = nommap, .d_kqfilter = mskqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/sysmon/sysmon.c --- a/sys/dev/sysmon/sysmon.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/sysmon/sysmon.c Sun Mar 23 23:43:03 2014 -0400 @@ -71,6 +71,7 @@ .d_poll = sysmonpoll, .d_mmap = nommap, .d_kqfilter = sysmonkqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER | D_MPSAFE }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/tc/stic.c --- a/sys/dev/tc/stic.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/tc/stic.c Sun Mar 23 23:43:03 2014 -0400 @@ -164,6 +164,7 @@ .d_poll = nopoll, .d_mmap = sticmmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = 0 }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/tprof/tprof.c --- a/sys/dev/tprof/tprof.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/tprof/tprof.c Sun Mar 23 23:43:03 2014 -0400 @@ -652,6 +652,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER | D_MPSAFE }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/usb/ucom.c --- a/sys/dev/usb/ucom.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/usb/ucom.c Sun Mar 23 23:43:03 2014 -0400 @@ -164,6 +164,7 @@ .d_poll = ucompoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/usb/ucycom.c --- a/sys/dev/usb/ucycom.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/usb/ucycom.c Sun Mar 23 23:43:03 2014 -0400 @@ -158,6 +158,7 @@ .d_poll = ucycompoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/usb/ugen.c --- a/sys/dev/usb/ugen.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/usb/ugen.c Sun Mar 23 23:43:03 2014 -0400 @@ -151,6 +151,7 @@ .d_poll = ugenpoll, .d_mmap = nommap, .d_kqfilter = ugenkqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER, }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/usb/uhid.c --- a/sys/dev/usb/uhid.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/usb/uhid.c Sun Mar 23 23:43:03 2014 -0400 @@ -126,6 +126,7 @@ .d_poll = uhidpoll, .d_mmap = nommap, .d_kqfilter = uhidkqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER | D_MPSAFE }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/usb/uhso.c --- a/sys/dev/usb/uhso.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/usb/uhso.c Sun Mar 23 23:43:03 2014 -0400 @@ -388,6 +388,7 @@ .d_poll = uhso_tty_poll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/usb/ulpt.c --- a/sys/dev/usb/ulpt.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/usb/ulpt.c Sun Mar 23 23:43:03 2014 -0400 @@ -140,6 +140,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/usb/urio.c --- a/sys/dev/usb/urio.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/usb/urio.c Sun Mar 23 23:43:03 2014 -0400 @@ -85,6 +85,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/usb/usb.c --- a/sys/dev/usb/usb.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/usb/usb.c Sun Mar 23 23:43:03 2014 -0400 @@ -127,6 +127,7 @@ .d_poll = usbpoll, .d_mmap = nommap, .d_kqfilter = usbkqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/usb/uscanner.c --- a/sys/dev/usb/uscanner.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/usb/uscanner.c Sun Mar 23 23:43:03 2014 -0400 @@ -251,6 +251,7 @@ .d_poll = uscannerpoll, .d_mmap = nommap, .d_kqfilter = uscannerkqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/usb/utoppy.c --- a/sys/dev/usb/utoppy.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/usb/utoppy.c Sun Mar 23 23:43:03 2014 -0400 @@ -189,6 +189,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/verified_exec.c --- a/sys/dev/verified_exec.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/verified_exec.c Sun Mar 23 23:43:03 2014 -0400 @@ -80,6 +80,7 @@ #endif .d_poll = nopoll, .d_mmap = nommap, + .d_discard = nodiscard, #if defined(__NetBSD__) .d_kqfilter = nokqfilter, .d_flag = D_OTHER, diff -r e2d38198dabf -r 448164dc52d1 sys/dev/video.c --- a/sys/dev/video.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/video.c Sun Mar 23 23:43:03 2014 -0400 @@ -215,6 +215,7 @@ .d_poll = videopoll, .d_mmap = videommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/vme/xd.c --- a/sys/dev/vme/xd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/vme/xd.c Sun Mar 23 23:43:03 2014 -0400 @@ -298,6 +298,7 @@ .d_ioctl = xdioctl, .d_dump = xddump, .d_psize = xdsize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -312,6 +313,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/vme/xy.c --- a/sys/dev/vme/xy.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/vme/xy.c Sun Mar 23 23:43:03 2014 -0400 @@ -214,6 +214,7 @@ .d_ioctl = xyioctl, .d_dump = xydump, .d_psize = xysize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -228,6 +229,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/vnd.c --- a/sys/dev/vnd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/vnd.c Sun Mar 23 23:43:03 2014 -0400 @@ -203,6 +203,7 @@ .d_ioctl = vndioctl, .d_dump = vnddump, .d_psize = vndsize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -217,6 +218,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/wscons/wsdisplay.c --- a/sys/dev/wscons/wsdisplay.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/wscons/wsdisplay.c Sun Mar 23 23:43:03 2014 -0400 @@ -199,6 +199,7 @@ .d_poll = wsdisplaypoll, .d_mmap = wsdisplaymmap, .d_kqfilter = wsdisplaykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/wscons/wskbd.c --- a/sys/dev/wscons/wskbd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/wscons/wskbd.c Sun Mar 23 23:43:03 2014 -0400 @@ -307,6 +307,7 @@ .d_poll = wskbdpoll, .d_mmap = nommap, .d_kqfilter = wskbdkqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/wscons/wsmouse.c --- a/sys/dev/wscons/wsmouse.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/wscons/wsmouse.c Sun Mar 23 23:43:03 2014 -0400 @@ -213,6 +213,7 @@ .d_poll = wsmousepoll, .d_mmap = nommap, .d_kqfilter = wsmousekqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/wscons/wsmux.c --- a/sys/dev/wscons/wsmux.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/wscons/wsmux.c Sun Mar 23 23:43:03 2014 -0400 @@ -134,6 +134,7 @@ .d_poll = wsmuxpoll, .d_mmap = nommap, .d_kqfilter = wsmuxkqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dev/wsfont/wsfontdev.c --- a/sys/dev/wsfont/wsfontdev.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dev/wsfont/wsfontdev.c Sun Mar 23 23:43:03 2014 -0400 @@ -117,5 +117,6 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/dist/pf/net/pf_ioctl.c --- a/sys/dist/pf/net/pf_ioctl.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/dist/pf/net/pf_ioctl.c Sun Mar 23 23:43:03 2014 -0400 @@ -179,6 +179,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/external/bsd/drm/dist/bsd-core/drm_drv.c --- a/sys/external/bsd/drm/dist/bsd-core/drm_drv.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/external/bsd/drm/dist/bsd-core/drm_drv.c Sun Mar 23 23:43:03 2014 -0400 @@ -314,6 +314,7 @@ .d_poll = drm_poll, .d_mmap = drm_mmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_TTY | D_NEGOFFSAFE }; diff -r e2d38198dabf -r 448164dc52d1 sys/external/bsd/drm2/drm/drm_drv.c --- a/sys/external/bsd/drm2/drm/drm_drv.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/external/bsd/drm2/drm/drm_drv.c Sun Mar 23 23:43:03 2014 -0400 @@ -272,6 +272,7 @@ .d_poll = nopoll, .d_mmap = drm_mmap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, /* XXX was D_TTY | D_NEGOFFSAFE */ /* XXX Add D_MPSAFE some day... */ .d_flag = D_NEGOFFSAFE, diff -r e2d38198dabf -r 448164dc52d1 sys/external/bsd/ipf/netinet/ip_fil_netbsd.c --- a/sys/external/bsd/ipf/netinet/ip_fil_netbsd.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/external/bsd/ipf/netinet/ip_fil_netbsd.c Sun Mar 23 23:43:03 2014 -0400 @@ -140,6 +140,7 @@ #if (__NetBSD_Version__ >= 200000000) .d_kqfilter = nokqfilter, #endif + .d_discard = nodiscard, #ifdef D_OTHER .d_flag = D_OTHER #else diff -r e2d38198dabf -r 448164dc52d1 sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_arm.c --- a/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_arm.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_arm.c Sun Mar 23 23:43:03 2014 -0400 @@ -188,6 +188,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER | D_MPSAFE }; diff -r e2d38198dabf -r 448164dc52d1 sys/fs/adosfs/advnops.c --- a/sys/fs/adosfs/advnops.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/fs/adosfs/advnops.c Sun Mar 23 23:43:03 2014 -0400 @@ -105,6 +105,8 @@ { &vop_setattr_desc, adosfs_setattr }, /* setattr */ { &vop_read_desc, adosfs_read }, /* read */ { &vop_write_desc, adosfs_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_fcntl_desc, adosfs_fcntl }, /* fcntl */ { &vop_ioctl_desc, adosfs_ioctl }, /* ioctl */ { &vop_poll_desc, adosfs_poll }, /* poll */ diff -r e2d38198dabf -r 448164dc52d1 sys/fs/cd9660/cd9660_vnops.c --- a/sys/fs/cd9660/cd9660_vnops.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/fs/cd9660/cd9660_vnops.c Sun Mar 23 23:43:03 2014 -0400 @@ -859,6 +859,8 @@ { &vop_setattr_desc, cd9660_setattr }, /* setattr */ { &vop_read_desc, cd9660_read }, /* read */ { &vop_write_desc, cd9660_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_ioctl_desc, cd9660_ioctl }, /* ioctl */ { &vop_poll_desc, cd9660_poll }, /* poll */ @@ -909,6 +911,8 @@ { &vop_setattr_desc, cd9660_setattr }, /* setattr */ { &vop_read_desc, spec_read }, /* read */ { &vop_write_desc, spec_write }, /* write */ + { &vop_fallocate_desc, spec_fallocate }, /* fallocate */ + { &vop_fdiscard_desc, spec_fdiscard }, /* fdiscard */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_ioctl_desc, spec_ioctl }, /* ioctl */ { &vop_poll_desc, spec_poll }, /* poll */ @@ -957,6 +961,8 @@ { &vop_setattr_desc, cd9660_setattr }, /* setattr */ { &vop_read_desc, vn_fifo_bypass }, /* read */ { &vop_write_desc, vn_fifo_bypass }, /* write */ + { &vop_fallocate_desc, vn_fifo_bypass }, /* fallocate */ + { &vop_fdiscard_desc, vn_fifo_bypass }, /* fdiscard */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */ { &vop_poll_desc, vn_fifo_bypass }, /* poll */ diff -r e2d38198dabf -r 448164dc52d1 sys/fs/efs/efs_vnops.c --- a/sys/fs/efs/efs_vnops.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/fs/efs/efs_vnops.c Sun Mar 23 23:43:03 2014 -0400 @@ -809,6 +809,8 @@ { &vop_setattr_desc, genfs_eopnotsupp}, /* setattr */ { &vop_read_desc, efs_read }, /* read */ { &vop_write_desc, genfs_eopnotsupp}, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp}, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp}, /* fdiscard */ { &vop_ioctl_desc, genfs_enoioctl }, /* ioctl */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_poll_desc, genfs_poll }, /* poll */ @@ -865,6 +867,8 @@ { &vop_setattr_desc, genfs_eopnotsupp}, /* setattr */ { &vop_read_desc, spec_read }, /* read */ { &vop_write_desc, spec_write }, /* write */ + { &vop_fallocate_desc, spec_fallocate }, /* fallocate */ + { &vop_fdiscard_desc, spec_fdiscard }, /* fdiscard */ { &vop_ioctl_desc, spec_ioctl }, /* ioctl */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_poll_desc, spec_poll }, /* poll */ @@ -921,6 +925,8 @@ { &vop_setattr_desc, genfs_eopnotsupp}, /* setattr */ { &vop_read_desc, vn_fifo_bypass }, /* read */ { &vop_write_desc, vn_fifo_bypass }, /* write */ + { &vop_fallocate_desc, vn_fifo_bypass }, /* fallocate */ + { &vop_fdiscard_desc, vn_fifo_bypass }, /* fdiscard */ { &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_poll_desc, vn_fifo_bypass }, /* poll */ diff -r e2d38198dabf -r 448164dc52d1 sys/fs/filecorefs/filecore_vnops.c --- a/sys/fs/filecorefs/filecore_vnops.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/fs/filecorefs/filecore_vnops.c Sun Mar 23 23:43:03 2014 -0400 @@ -565,6 +565,8 @@ { &vop_setattr_desc, filecore_setattr }, /* setattr */ { &vop_read_desc, filecore_read }, /* read */ { &vop_write_desc, filecore_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_fcntl_desc, filecore_fcntl }, /* fcntl */ { &vop_ioctl_desc, filecore_ioctl }, /* ioctl */ { &vop_poll_desc, filecore_poll }, /* poll */ diff -r e2d38198dabf -r 448164dc52d1 sys/fs/hfs/hfs_vnops.c --- a/sys/fs/hfs/hfs_vnops.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/fs/hfs/hfs_vnops.c Sun Mar 23 23:43:03 2014 -0400 @@ -165,6 +165,8 @@ { &vop_setattr_desc, hfs_vop_setattr }, /* setattr */ { &vop_read_desc, hfs_vop_read }, /* read */ { &vop_write_desc, genfs_eopnotsupp }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_ioctl_desc, genfs_eopnotsupp }, /* ioctl */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_poll_desc, genfs_eopnotsupp }, /* poll */ @@ -219,6 +221,8 @@ { &vop_setattr_desc, hfs_vop_setattr }, /* setattr */ { &vop_read_desc, spec_read }, /* read */ { &vop_write_desc, spec_write }, /* write */ + { &vop_fallocate_desc, spec_fallocate }, /* fallocate */ + { &vop_fdiscard_desc, spec_fdiscard }, /* fdiscard */ { &vop_ioctl_desc, spec_ioctl }, /* ioctl */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_poll_desc, spec_poll }, /* poll */ @@ -275,6 +279,8 @@ { &vop_setattr_desc, hfs_vop_setattr }, /* setattr */ { &vop_read_desc, vn_fifo_bypass }, /* read */ { &vop_write_desc, vn_fifo_bypass }, /* write */ + { &vop_fallocate_desc, vn_fifo_bypass }, /* fallocate */ + { &vop_fdiscard_desc, vn_fifo_bypass }, /* fdiscard */ { &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_poll_desc, vn_fifo_bypass }, /* poll */ diff -r e2d38198dabf -r 448164dc52d1 sys/fs/msdosfs/msdosfs_vnops.c --- a/sys/fs/msdosfs/msdosfs_vnops.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/fs/msdosfs/msdosfs_vnops.c Sun Mar 23 23:43:03 2014 -0400 @@ -1871,6 +1871,8 @@ { &vop_setattr_desc, msdosfs_setattr }, /* setattr */ { &vop_read_desc, msdosfs_read }, /* read */ { &vop_write_desc, msdosfs_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_ioctl_desc, msdosfs_ioctl }, /* ioctl */ { &vop_poll_desc, msdosfs_poll }, /* poll */ diff -r e2d38198dabf -r 448164dc52d1 sys/fs/nilfs/nilfs_vnops.c --- a/sys/fs/nilfs/nilfs_vnops.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/fs/nilfs/nilfs_vnops.c Sun Mar 23 23:43:03 2014 -0400 @@ -1572,6 +1572,8 @@ { &vop_setattr_desc, nilfs_setattr }, /* setattr */ /* TODO chflags */ { &vop_read_desc, nilfs_read }, /* read */ { &vop_write_desc, nilfs_write }, /* write */ /* WRITE */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ /* TODO? */ { &vop_ioctl_desc, genfs_enoioctl }, /* ioctl */ /* TODO? */ { &vop_poll_desc, genfs_poll }, /* poll */ /* TODO/OK? */ diff -r e2d38198dabf -r 448164dc52d1 sys/fs/ntfs/ntfs_vnops.c --- a/sys/fs/ntfs/ntfs_vnops.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/fs/ntfs/ntfs_vnops.c Sun Mar 23 23:43:03 2014 -0400 @@ -818,6 +818,8 @@ { &vop_setattr_desc, genfs_eopnotsupp }, /* setattr */ { &vop_read_desc, (vop_t *) ntfs_read }, /* read */ { &vop_write_desc, (vop_t *) ntfs_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_ioctl_desc, genfs_enoioctl }, /* ioctl */ { &vop_poll_desc, genfs_poll }, /* poll */ diff -r e2d38198dabf -r 448164dc52d1 sys/fs/ptyfs/ptyfs_vnops.c --- a/sys/fs/ptyfs/ptyfs_vnops.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/fs/ptyfs/ptyfs_vnops.c Sun Mar 23 23:43:03 2014 -0400 @@ -175,6 +175,8 @@ { &vop_setattr_desc, ptyfs_setattr }, /* setattr */ { &vop_read_desc, ptyfs_read }, /* read */ { &vop_write_desc, ptyfs_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_ioctl_desc, ptyfs_ioctl }, /* ioctl */ { &vop_fcntl_desc, ptyfs_fcntl }, /* fcntl */ { &vop_poll_desc, ptyfs_poll }, /* poll */ diff -r e2d38198dabf -r 448164dc52d1 sys/fs/puffs/puffs_vnops.c --- a/sys/fs/puffs/puffs_vnops.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/fs/puffs/puffs_vnops.c Sun Mar 23 23:43:03 2014 -0400 @@ -113,6 +113,8 @@ { &vop_setattr_desc, puffs_vnop_checkop }, /* setattr */ { &vop_read_desc, puffs_vnop_checkop }, /* read */ { &vop_write_desc, puffs_vnop_checkop }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_fsync_desc, puffs_vnop_fsync }, /* REAL fsync */ { &vop_seek_desc, puffs_vnop_checkop }, /* seek */ { &vop_remove_desc, puffs_vnop_checkop }, /* remove */ @@ -168,6 +170,8 @@ { &vop_setattr_desc, puffs_vnop_checkop }, /* setattr */ { &vop_read_desc, puffs_vnop_spec_read }, /* update, read */ { &vop_write_desc, puffs_vnop_spec_write }, /* update, write */ + { &vop_fallocate_desc, spec_fallocate }, /* fallocate */ + { &vop_fdiscard_desc, spec_fdiscard }, /* fdiscard */ { &vop_ioctl_desc, spec_ioctl }, /* spec_ioctl */ { &vop_fcntl_desc, genfs_fcntl }, /* dummy */ { &vop_poll_desc, spec_poll }, /* spec_poll */ @@ -225,6 +229,8 @@ { &vop_setattr_desc, puffs_vnop_checkop }, /* setattr */ { &vop_read_desc, puffs_vnop_fifo_read }, /* read, update */ { &vop_write_desc, puffs_vnop_fifo_write }, /* write, update */ + { &vop_fallocate_desc, vn_fifo_bypass }, /* fallocate */ + { &vop_fdiscard_desc, vn_fifo_bypass }, /* fdiscard */ { &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */ { &vop_fcntl_desc, genfs_fcntl }, /* dummy */ { &vop_poll_desc, vn_fifo_bypass }, /* poll */ diff -r e2d38198dabf -r 448164dc52d1 sys/fs/smbfs/smbfs_vnops.c --- a/sys/fs/smbfs/smbfs_vnops.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/fs/smbfs/smbfs_vnops.c Sun Mar 23 23:43:03 2014 -0400 @@ -127,6 +127,8 @@ { &vop_advlock_desc, smbfs_advlock }, { &vop_close_desc, smbfs_close }, { &vop_create_desc, smbfs_create }, + { &vop_fallocate_desc, genfs_eopnotsupp }, + { &vop_fdiscard_desc, genfs_eopnotsupp }, { &vop_fsync_desc, smbfs_fsync }, { &vop_getattr_desc, smbfs_getattr }, { &vop_getpages_desc, genfs_compat_getpages }, diff -r e2d38198dabf -r 448164dc52d1 sys/fs/sysvbfs/sysvbfs.c --- a/sys/fs/sysvbfs/sysvbfs.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/fs/sysvbfs/sysvbfs.c Sun Mar 23 23:43:03 2014 -0400 @@ -59,6 +59,8 @@ { &vop_setattr_desc, sysvbfs_setattr }, /* setattr */ { &vop_read_desc, sysvbfs_read }, /* read */ { &vop_write_desc, sysvbfs_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_ioctl_desc, genfs_enoioctl }, /* ioctl */ { &vop_poll_desc, genfs_poll }, /* poll */ diff -r e2d38198dabf -r 448164dc52d1 sys/fs/tmpfs/tmpfs_fifoops.c --- a/sys/fs/tmpfs/tmpfs_fifoops.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/fs/tmpfs/tmpfs_fifoops.c Sun Mar 23 23:43:03 2014 -0400 @@ -59,6 +59,8 @@ { &vop_setattr_desc, tmpfs_fifo_setattr }, { &vop_read_desc, tmpfs_fifo_read }, { &vop_write_desc, tmpfs_fifo_write }, + { &vop_fallocate_desc, vn_fifo_bypass }, + { &vop_fdiscard_desc, vn_fifo_bypass }, { &vop_ioctl_desc, tmpfs_fifo_ioctl }, { &vop_fcntl_desc, tmpfs_fifo_fcntl }, { &vop_poll_desc, tmpfs_fifo_poll }, diff -r e2d38198dabf -r 448164dc52d1 sys/fs/tmpfs/tmpfs_specops.c --- a/sys/fs/tmpfs/tmpfs_specops.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/fs/tmpfs/tmpfs_specops.c Sun Mar 23 23:43:03 2014 -0400 @@ -62,6 +62,8 @@ { &vop_setattr_desc, tmpfs_spec_setattr }, { &vop_read_desc, tmpfs_spec_read }, { &vop_write_desc, tmpfs_spec_write }, + { &vop_fallocate_desc, spec_fallocate }, + { &vop_fdiscard_desc, spec_fdiscard }, { &vop_ioctl_desc, tmpfs_spec_ioctl }, { &vop_fcntl_desc, tmpfs_spec_fcntl }, { &vop_poll_desc, tmpfs_spec_poll }, diff -r e2d38198dabf -r 448164dc52d1 sys/fs/tmpfs/tmpfs_vnops.c --- a/sys/fs/tmpfs/tmpfs_vnops.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/fs/tmpfs/tmpfs_vnops.c Sun Mar 23 23:43:03 2014 -0400 @@ -74,6 +74,8 @@ { &vop_setattr_desc, tmpfs_setattr }, { &vop_read_desc, tmpfs_read }, { &vop_write_desc, tmpfs_write }, + { &vop_fallocate_desc, genfs_eopnotsupp }, + { &vop_fdiscard_desc, genfs_eopnotsupp }, { &vop_ioctl_desc, tmpfs_ioctl }, { &vop_fcntl_desc, tmpfs_fcntl }, { &vop_poll_desc, tmpfs_poll }, diff -r e2d38198dabf -r 448164dc52d1 sys/fs/udf/udf_vnops.c --- a/sys/fs/udf/udf_vnops.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/fs/udf/udf_vnops.c Sun Mar 23 23:43:03 2014 -0400 @@ -2143,6 +2143,8 @@ { &vop_setattr_desc, udf_setattr }, /* setattr */ /* TODO chflags */ { &vop_read_desc, udf_read }, /* read */ { &vop_write_desc, udf_write }, /* write */ /* WRITE */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ /* TODO? */ { &vop_ioctl_desc, genfs_enoioctl }, /* ioctl */ /* TODO? */ { &vop_poll_desc, genfs_poll }, /* poll */ /* TODO/OK? */ diff -r e2d38198dabf -r 448164dc52d1 sys/fs/union/union_vnops.c --- a/sys/fs/union/union_vnops.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/fs/union/union_vnops.c Sun Mar 23 23:43:03 2014 -0400 @@ -155,6 +155,8 @@ { &vop_setattr_desc, union_setattr }, /* setattr */ { &vop_read_desc, union_read }, /* read */ { &vop_write_desc, union_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_ioctl_desc, union_ioctl }, /* ioctl */ { &vop_poll_desc, union_poll }, /* select */ { &vop_revoke_desc, union_revoke }, /* revoke */ diff -r e2d38198dabf -r 448164dc52d1 sys/fs/unionfs/unionfs_vnops.c --- a/sys/fs/unionfs/unionfs_vnops.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/fs/unionfs/unionfs_vnops.c Sun Mar 23 23:43:03 2014 -0400 @@ -1820,6 +1820,8 @@ { &vop_setattr_desc, unionfs_setattr }, /* setattr */ { &vop_read_desc, unionfs_read }, /* read */ { &vop_write_desc, unionfs_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_ioctl_desc, unionfs_ioctl }, /* ioctl */ { &vop_poll_desc, unionfs_poll }, /* select */ { &vop_revoke_desc, unionfs_revoke }, /* revoke */ diff -r e2d38198dabf -r 448164dc52d1 sys/fs/v7fs/v7fs_extern.c --- a/sys/fs/v7fs/v7fs_extern.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/fs/v7fs/v7fs_extern.c Sun Mar 23 23:43:03 2014 -0400 @@ -65,6 +65,8 @@ { &vop_setattr_desc, v7fs_setattr }, /* setattr */ { &vop_read_desc, v7fs_read }, /* read */ { &vop_write_desc, v7fs_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_ioctl_desc, genfs_enoioctl }, /* ioctl */ { &vop_poll_desc, genfs_poll }, /* poll */ @@ -112,6 +114,8 @@ { &vop_setattr_desc, v7fs_setattr }, /* setattr */ { &vop_read_desc, spec_read }, /* read */ { &vop_write_desc, spec_write }, /* write */ + { &vop_fallocate_desc, spec_fallocate }, /* fallocate */ + { &vop_fdiscard_desc, spec_fdiscard }, /* fdiscard */ { &vop_ioctl_desc, spec_ioctl }, /* ioctl */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_poll_desc, spec_poll }, /* poll */ @@ -158,6 +162,8 @@ { &vop_setattr_desc, v7fs_setattr }, /* setattr */ { &vop_read_desc, vn_fifo_bypass }, /* read */ { &vop_write_desc, vn_fifo_bypass }, /* write */ + { &vop_fallocate_desc, vn_fifo_bypass }, /* fallocate */ + { &vop_fdiscard_desc, vn_fifo_bypass }, /* fdiscard */ { &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_poll_desc, vn_fifo_bypass }, /* poll */ diff -r e2d38198dabf -r 448164dc52d1 sys/kern/init_sysent.c --- a/sys/kern/init_sysent.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/kern/init_sysent.c Sun Mar 23 23:43:03 2014 -0400 @@ -1,4 +1,4 @@ -/* $NetBSD: init_sysent.c,v 1.281 2014/03/14 00:56:37 pooka Exp $ */ +/* $NetBSD$ */ /* * System call switch table. @@ -8,7 +8,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: init_sysent.c,v 1.281 2014/03/14 00:56:37 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD$"); #include "opt_modular.h" #include "opt_ntp.h" @@ -1156,10 +1156,10 @@ (sy_call_t *)sys_clock_nanosleep }, /* 477 = clock_nanosleep */ { ns(struct sys____lwp_park60_args), SYCALL_ARG_PTR, (sy_call_t *)sys____lwp_park60 }, /* 478 = ___lwp_park60 */ - { 0, 0, 0, - sys_nosys }, /* 479 = filler */ - { 0, 0, 0, - sys_nosys }, /* 480 = filler */ + { ns(struct sys_fallocate_args), SYCALL_NARGS64_VAL(2) | SYCALL_ARG3_64 | SYCALL_ARG2_64, + (sy_call_t *)sys_fallocate }, /* 479 = fallocate */ + { ns(struct sys_fdiscard_args), SYCALL_NARGS64_VAL(2) | SYCALL_ARG3_64 | SYCALL_ARG2_64, + (sy_call_t *)sys_fdiscard }, /* 480 = fdiscard */ { 0, 0, 0, sys_nosys }, /* 481 = filler */ { 0, 0, 0, diff -r e2d38198dabf -r 448164dc52d1 sys/kern/kern_cpu.c --- a/sys/kern/kern_cpu.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/kern/kern_cpu.c Sun Mar 23 23:43:03 2014 -0400 @@ -112,6 +112,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER | D_MPSAFE }; diff -r e2d38198dabf -r 448164dc52d1 sys/kern/kern_descrip.c --- a/sys/kern/kern_descrip.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/kern/kern_descrip.c Sun Mar 23 23:43:03 2014 -0400 @@ -132,6 +132,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER | D_MPSAFE }; diff -r e2d38198dabf -r 448164dc52d1 sys/kern/kern_drvctl.c --- a/sys/kern/kern_drvctl.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/kern/kern_drvctl.c Sun Mar 23 23:43:03 2014 -0400 @@ -76,6 +76,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/kern/kern_ksyms.c --- a/sys/kern/kern_ksyms.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/kern/kern_ksyms.c Sun Mar 23 23:43:03 2014 -0400 @@ -1145,5 +1145,6 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nullkqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER | D_MPSAFE }; diff -r e2d38198dabf -r 448164dc52d1 sys/kern/subr_log.c --- a/sys/kern/subr_log.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/kern/subr_log.c Sun Mar 23 23:43:03 2014 -0400 @@ -407,5 +407,6 @@ .d_poll = logpoll, .d_mmap = nommap, .d_kqfilter = logkqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER | D_MPSAFE }; diff -r e2d38198dabf -r 448164dc52d1 sys/kern/syscalls.c --- a/sys/kern/syscalls.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/kern/syscalls.c Sun Mar 23 23:43:03 2014 -0400 @@ -1,4 +1,4 @@ -/* $NetBSD: syscalls.c,v 1.272 2014/03/14 00:56:37 pooka Exp $ */ +/* $NetBSD$ */ /* * System call names. @@ -8,7 +8,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: syscalls.c,v 1.272 2014/03/14 00:56:37 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD$"); #if defined(_KERNEL_OPT) #include "opt_modular.h" @@ -568,8 +568,8 @@ /* 476 */ "sendmmsg", /* 477 */ "clock_nanosleep", /* 478 */ "___lwp_park60", - /* 479 */ "# filler", - /* 480 */ "# filler", + /* 479 */ "fallocate", + /* 480 */ "fdiscard", /* 481 */ "# filler", /* 482 */ "# filler", /* 483 */ "# filler", diff -r e2d38198dabf -r 448164dc52d1 sys/kern/syscalls.master --- a/sys/kern/syscalls.master Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/kern/syscalls.master Sun Mar 23 23:43:03 2014 -0400 @@ -944,3 +944,7 @@ 478 STD { int|sys|60|_lwp_park(clockid_t clock_id, int flags, \ const struct timespec *ts, lwpid_t unpark, \ const void *hint, const void *unparkhint); } +479 STD RUMP { int|sys||fallocate(int fd, int PAD, off_t pos, \ + off_t len); } +480 STD RUMP { int|sys||fdiscard(int fd, int PAD, off_t pos, \ + off_t len); } diff -r e2d38198dabf -r 448164dc52d1 sys/kern/tty_ptm.c --- a/sys/kern/tty_ptm.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/kern/tty_ptm.c Sun Mar 23 23:43:03 2014 -0400 @@ -76,6 +76,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; #else @@ -417,6 +418,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; #endif diff -r e2d38198dabf -r 448164dc52d1 sys/kern/tty_pty.c --- a/sys/kern/tty_pty.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/kern/tty_pty.c Sun Mar 23 23:43:03 2014 -0400 @@ -119,6 +119,7 @@ .d_poll = ptcpoll, .d_mmap = nommap, .d_kqfilter = ptckqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; @@ -133,6 +134,7 @@ .d_poll = ptspoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; @@ -153,6 +155,7 @@ .d_poll = ptcpoll, .d_mmap = nommap, .d_kqfilter = ptckqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; @@ -167,6 +170,7 @@ .d_poll = ptspoll, .d_mmap = nommap, .d_kqfilter = ttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; #endif /* defined(pmax) */ diff -r e2d38198dabf -r 448164dc52d1 sys/kern/tty_tty.c --- a/sys/kern/tty_tty.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/kern/tty_tty.c Sun Mar 23 23:43:03 2014 -0400 @@ -167,5 +167,6 @@ .d_poll = cttypoll, .d_mmap = nommap, .d_kqfilter = cttykqfilter, + .d_discard = nodiscard, .d_flag = D_TTY }; diff -r e2d38198dabf -r 448164dc52d1 sys/kern/vfs_syscalls.c --- a/sys/kern/vfs_syscalls.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/kern/vfs_syscalls.c Sun Mar 23 23:43:03 2014 -0400 @@ -116,6 +116,11 @@ #include #include +/* XXX this shouldn't be here */ +#ifndef OFF_T_MAX +#define OFF_T_MAX __type_max(off_t) +#endif + static int change_flags(struct vnode *, u_long, struct lwp *); static int change_mode(struct vnode *, int, struct lwp *); static int change_owner(struct vnode *, uid_t, gid_t, struct lwp *, int); @@ -4685,3 +4690,105 @@ vrele(vp); return (error); } + +/* + * Allocate backing store for a file, filling a hole without having to + * explicitly write anything out. + */ +/* ARGSUSED */ +int +sys_fallocate(struct lwp *l, const struct sys_fallocate_args *uap, + register_t *retval) +{ + /* { + syscallarg(int) fd; + syscallarg(off_t) pos; + syscallarg(off_t) len; + } */ + int fd; + off_t pos, len; + struct file *fp; + struct vnode *vp; + int result; + + fd = SCARG(uap, fd); + pos = SCARG(uap, pos); + len = SCARG(uap, len); + + if (pos < 0 || len < 0 || len > OFF_T_MAX - pos) { + return EINVAL; + } + + result = fd_getvnode(fd, &fp); + if (result) { + return result; + } + if ((fp->f_flag & FWRITE) == 0) { + result = EBADF; + goto fail; + } + vp = fp->f_data; + + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); + if (vp->v_type == VDIR) { + result = EISDIR; + } else { + result = VOP_FALLOCATE(vp, pos, len); + } + VOP_UNLOCK(vp); + +fail: + fd_putfile(fd); + return result; +} + +/* + * Dellocate backing store for a file, creating a hole. Also used for + * invoking TRIM on disks. + */ +/* ARGSUSED */ +int +sys_fdiscard(struct lwp *l, const struct sys_fdiscard_args *uap, + register_t *retval) +{ + /* { + syscallarg(int) fd; + syscallarg(off_t) pos; + syscallarg(off_t) len; + } */ + int fd; + off_t pos, len; + struct file *fp; + struct vnode *vp; + int result; + + fd = SCARG(uap, fd); + pos = SCARG(uap, pos); + len = SCARG(uap, len); + + if (pos < 0 || len < 0 || len > OFF_T_MAX - pos) { + return EINVAL; + } + + result = fd_getvnode(fd, &fp); + if (result) { + return result; + } + if ((fp->f_flag & FWRITE) == 0) { + result = EBADF; + goto fail; + } + vp = fp->f_data; + + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); + if (vp->v_type == VDIR) { + result = EISDIR; + } else { + result = VOP_FDISCARD(vp, pos, len); + } + VOP_UNLOCK(vp); + +fail: + fd_putfile(fd); + return result; +} diff -r e2d38198dabf -r 448164dc52d1 sys/kern/vnode_if.c --- a/sys/kern/vnode_if.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/kern/vnode_if.c Sun Mar 23 23:43:03 2014 -0400 @@ -1,4 +1,4 @@ -/* $NetBSD: vnode_if.c,v 1.92 2014/02/07 15:29:22 hannken Exp $ */ +/* $NetBSD$ */ /* * Warning: DO NOT EDIT! This file is automatically generated! @@ -40,7 +40,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: vnode_if.c,v 1.92 2014/02/07 15:29:22 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD$"); #include #include @@ -432,6 +432,70 @@ return error; } +const int vop_fallocate_vp_offsets[] = { + VOPARG_OFFSETOF(struct vop_fallocate_args,a_vp), + VDESC_NO_OFFSET +}; +const struct vnodeop_desc vop_fallocate_desc = { + VOP_FALLOCATE_DESCOFFSET, + "vop_fallocate", + 0, + vop_fallocate_vp_offsets, + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, +}; +int +VOP_FALLOCATE(struct vnode *vp, + off_t pos, + off_t len) +{ + int error; + bool mpsafe; + struct vop_fallocate_args a; + a.a_desc = VDESC(vop_fallocate); + a.a_vp = vp; + a.a_pos = pos; + a.a_len = len; + mpsafe = (vp->v_vflag & VV_MPSAFE); + if (!mpsafe) { KERNEL_LOCK(1, curlwp); } + error = (VCALL(vp, VOFFSET(vop_fallocate), &a)); + if (!mpsafe) { KERNEL_UNLOCK_ONE(curlwp); } + return error; +} + +const int vop_fdiscard_vp_offsets[] = { + VOPARG_OFFSETOF(struct vop_fdiscard_args,a_vp), + VDESC_NO_OFFSET +}; +const struct vnodeop_desc vop_fdiscard_desc = { + VOP_FDISCARD_DESCOFFSET, + "vop_fdiscard", + 0, + vop_fdiscard_vp_offsets, + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, +}; +int +VOP_FDISCARD(struct vnode *vp, + off_t pos, + off_t len) +{ + int error; + bool mpsafe; + struct vop_fdiscard_args a; + a.a_desc = VDESC(vop_fdiscard); + a.a_vp = vp; + a.a_pos = pos; + a.a_len = len; + mpsafe = (vp->v_vflag & VV_MPSAFE); + if (!mpsafe) { KERNEL_LOCK(1, curlwp); } + error = (VCALL(vp, VOFFSET(vop_fdiscard), &a)); + if (!mpsafe) { KERNEL_UNLOCK_ONE(curlwp); } + return error; +} + const int vop_ioctl_vp_offsets[] = { VOPARG_OFFSETOF(struct vop_ioctl_args,a_vp), VDESC_NO_OFFSET @@ -1652,6 +1716,8 @@ &vop_setattr_desc, &vop_read_desc, &vop_write_desc, + &vop_fallocate_desc, + &vop_fdiscard_desc, &vop_ioctl_desc, &vop_fcntl_desc, &vop_poll_desc, diff -r e2d38198dabf -r 448164dc52d1 sys/kern/vnode_if.src --- a/sys/kern/vnode_if.src Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/kern/vnode_if.src Sun Mar 23 23:43:03 2014 -0400 @@ -171,6 +171,24 @@ }; # +#% fallocate vp L L L +# +vop_fallocate { + IN LOCKED=YES struct vnode *vp; + IN off_t pos; + IN off_t len; +}; + +# +#% fallocate vp L L L +# +vop_fdiscard { + IN LOCKED=YES struct vnode *vp; + IN off_t pos; + IN off_t len; +}; + +# #% ioctl vp U U U # vop_ioctl { diff -r e2d38198dabf -r 448164dc52d1 sys/miscfs/deadfs/dead_vnops.c --- a/sys/miscfs/deadfs/dead_vnops.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/miscfs/deadfs/dead_vnops.c Sun Mar 23 23:43:03 2014 -0400 @@ -87,6 +87,8 @@ { &vop_close_desc, dead_close }, /* close */ { &vop_read_desc, dead_read }, /* read */ { &vop_write_desc, dead_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_fcntl_desc, dead_fcntl }, /* fcntl */ { &vop_ioctl_desc, dead_ioctl }, /* ioctl */ { &vop_poll_desc, dead_poll }, /* poll */ diff -r e2d38198dabf -r 448164dc52d1 sys/miscfs/fdesc/fdesc_vnops.c --- a/sys/miscfs/fdesc/fdesc_vnops.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/miscfs/fdesc/fdesc_vnops.c Sun Mar 23 23:43:03 2014 -0400 @@ -139,6 +139,8 @@ { &vop_setattr_desc, fdesc_setattr }, /* setattr */ { &vop_read_desc, fdesc_read }, /* read */ { &vop_write_desc, fdesc_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_ioctl_desc, fdesc_ioctl }, /* ioctl */ { &vop_fcntl_desc, fdesc_fcntl }, /* fcntl */ { &vop_poll_desc, fdesc_poll }, /* poll */ diff -r e2d38198dabf -r 448164dc52d1 sys/miscfs/fifofs/fifo_vnops.c --- a/sys/miscfs/fifofs/fifo_vnops.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/miscfs/fifofs/fifo_vnops.c Sun Mar 23 23:43:03 2014 -0400 @@ -636,6 +636,8 @@ { &vop_setattr_desc, genfs_ebadf }, /* setattr */ { &vop_read_desc, fifo_read }, /* read */ { &vop_write_desc, fifo_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_ioctl_desc, fifo_ioctl }, /* ioctl */ { &vop_poll_desc, fifo_poll }, /* poll */ { &vop_kqfilter_desc, fifo_kqfilter }, /* kqfilter */ diff -r e2d38198dabf -r 448164dc52d1 sys/miscfs/kernfs/kernfs_vnops.c --- a/sys/miscfs/kernfs/kernfs_vnops.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/miscfs/kernfs/kernfs_vnops.c Sun Mar 23 23:43:03 2014 -0400 @@ -190,6 +190,8 @@ { &vop_setattr_desc, kernfs_setattr }, /* setattr */ { &vop_read_desc, kernfs_read }, /* read */ { &vop_write_desc, kernfs_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_fcntl_desc, kernfs_fcntl }, /* fcntl */ { &vop_ioctl_desc, kernfs_ioctl }, /* ioctl */ { &vop_poll_desc, kernfs_poll }, /* poll */ diff -r e2d38198dabf -r 448164dc52d1 sys/miscfs/procfs/procfs_vnops.c --- a/sys/miscfs/procfs/procfs_vnops.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/miscfs/procfs/procfs_vnops.c Sun Mar 23 23:43:03 2014 -0400 @@ -259,6 +259,8 @@ { &vop_setattr_desc, procfs_setattr }, /* setattr */ { &vop_read_desc, procfs_read }, /* read */ { &vop_write_desc, procfs_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_fcntl_desc, procfs_fcntl }, /* fcntl */ { &vop_ioctl_desc, procfs_ioctl }, /* ioctl */ { &vop_poll_desc, procfs_poll }, /* poll */ diff -r e2d38198dabf -r 448164dc52d1 sys/miscfs/specfs/spec_vnops.c --- a/sys/miscfs/specfs/spec_vnops.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/miscfs/specfs/spec_vnops.c Sun Mar 23 23:43:03 2014 -0400 @@ -123,6 +123,8 @@ { &vop_setattr_desc, spec_setattr }, /* setattr */ { &vop_read_desc, spec_read }, /* read */ { &vop_write_desc, spec_write }, /* write */ + { &vop_fallocate_desc, spec_fallocate }, /* fallocate */ + { &vop_fdiscard_desc, spec_fdiscard }, /* fdiscard */ { &vop_fcntl_desc, spec_fcntl }, /* fcntl */ { &vop_ioctl_desc, spec_ioctl }, /* ioctl */ { &vop_poll_desc, spec_poll }, /* poll */ @@ -839,6 +841,49 @@ } /* + * fdiscard, which on disk devices becomes TRIM. + */ +int +spec_fdiscard(void *v) +{ + struct vop_fdiscard_args /* { + struct vnode *a_vp; + off_t a_pos; + off_t a_len; + } */ *ap = v; + struct vnode *vp; + dev_t dev; + + vp = ap->a_vp; + dev = NODEV; + + /* XXX: gross. Is this what we want and is it safe enough? blah */ + VOP_UNLOCK(vp); + mutex_enter(vp->v_interlock); + if ((vp->v_iflag & VI_XLOCK) == 0 && vp->v_specnode != NULL) { + dev = vp->v_rdev; + } + mutex_exit(vp->v_interlock); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); + + if (dev == NODEV) { + return ENXIO; + } + + switch (vp->v_type) { + case VCHR: + // this is not stored for character devices + //KASSERT(vp == vp->v_specnode->sn_dev->sd_cdevvp); + return cdev_discard(dev, ap->a_pos, ap->a_len); + case VBLK: + KASSERT(vp == vp->v_specnode->sn_dev->sd_bdevvp); + return bdev_discard(dev, ap->a_pos, ap->a_len); + default: + panic("spec_fdiscard: not a device\n"); + } +} + +/* * Device ioctl operation. */ /* ARGSUSED */ diff -r e2d38198dabf -r 448164dc52d1 sys/miscfs/specfs/specdev.h --- a/sys/miscfs/specfs/specdev.h Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/miscfs/specfs/specdev.h Sun Mar 23 23:43:03 2014 -0400 @@ -119,6 +119,8 @@ #define spec_setattr genfs_ebadf int spec_read(void *); int spec_write(void *); +#define spec_fallocate genfs_eopnotsupp +int spec_fdiscard(void *); #define spec_fcntl genfs_fcntl int spec_ioctl(void *); int spec_poll(void *); diff -r e2d38198dabf -r 448164dc52d1 sys/modules/lua/lua.c --- a/sys/modules/lua/lua.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/modules/lua/lua.c Sun Mar 23 23:43:03 2014 -0400 @@ -102,6 +102,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER | D_MPSAFE }; diff -r e2d38198dabf -r 448164dc52d1 sys/net/bpf.c --- a/sys/net/bpf.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/net/bpf.c Sun Mar 23 23:43:03 2014 -0400 @@ -191,6 +191,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/net/if_srt.c --- a/sys/net/if_srt.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/net/if_srt.c Sun Mar 23 23:43:03 2014 -0400 @@ -492,5 +492,6 @@ .d_poll = nullpoll, .d_mmap = nommap, .d_kqfilter = nullkqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/net/if_tap.c --- a/sys/net/if_tap.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/net/if_tap.c Sun Mar 23 23:43:03 2014 -0400 @@ -184,6 +184,7 @@ .d_poll = tap_cdev_poll, .d_mmap = nommap, .d_kqfilter = tap_cdev_kqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/net/if_tun.c --- a/sys/net/if_tun.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/net/if_tun.c Sun Mar 23 23:43:03 2014 -0400 @@ -106,6 +106,7 @@ .d_poll = tunpoll, .d_mmap = nommap, .d_kqfilter = tunkqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/net/npf/npf.c --- a/sys/net/npf/npf.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/net/npf/npf.c Sun Mar 23 23:43:03 2014 -0400 @@ -83,6 +83,7 @@ .d_poll = npf_dev_poll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER | D_MPSAFE }; diff -r e2d38198dabf -r 448164dc52d1 sys/netisdn/i4b_ctl.c --- a/sys/netisdn/i4b_ctl.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/netisdn/i4b_ctl.c Sun Mar 23 23:43:03 2014 -0400 @@ -164,6 +164,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; #endif /* __NetBSD__ */ diff -r e2d38198dabf -r 448164dc52d1 sys/netisdn/i4b_i4bdrv.c --- a/sys/netisdn/i4b_i4bdrv.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/netisdn/i4b_i4bdrv.c Sun Mar 23 23:43:03 2014 -0400 @@ -206,6 +206,7 @@ .d_poll = isdnpoll, .d_mmap = nommap, .d_kqfilter = isdnkqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; #endif /* __NetBSD__ */ diff -r e2d38198dabf -r 448164dc52d1 sys/netisdn/i4b_rbch.c --- a/sys/netisdn/i4b_rbch.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/netisdn/i4b_rbch.c Sun Mar 23 23:43:03 2014 -0400 @@ -200,6 +200,7 @@ .d_poll = isdnbchanpoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; #endif /* __NetBSD__ */ diff -r e2d38198dabf -r 448164dc52d1 sys/netisdn/i4b_tel.c --- a/sys/netisdn/i4b_tel.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/netisdn/i4b_tel.c Sun Mar 23 23:43:03 2014 -0400 @@ -204,6 +204,7 @@ .d_poll = isdntelpoll, .d_mmap = nommap, .d_kqfilter = isdntelkqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; #endif /* __NetBSD__ */ diff -r e2d38198dabf -r 448164dc52d1 sys/netisdn/i4b_trace.c --- a/sys/netisdn/i4b_trace.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/netisdn/i4b_trace.c Sun Mar 23 23:43:03 2014 -0400 @@ -99,6 +99,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; #endif /* __NetBSD__ */ diff -r e2d38198dabf -r 448164dc52d1 sys/netsmb/smb_dev.c --- a/sys/netsmb/smb_dev.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/netsmb/smb_dev.c Sun Mar 23 23:43:03 2014 -0400 @@ -95,6 +95,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER, }; diff -r e2d38198dabf -r 448164dc52d1 sys/nfs/nfs_vnops.c --- a/sys/nfs/nfs_vnops.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/nfs/nfs_vnops.c Sun Mar 23 23:43:03 2014 -0400 @@ -107,6 +107,8 @@ { &vop_setattr_desc, nfs_setattr }, /* setattr */ { &vop_read_desc, nfs_read }, /* read */ { &vop_write_desc, nfs_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_ioctl_desc, nfs_ioctl }, /* ioctl */ { &vop_poll_desc, nfs_poll }, /* poll */ @@ -158,6 +160,8 @@ { &vop_setattr_desc, nfs_setattr }, /* setattr */ { &vop_read_desc, nfsspec_read }, /* read */ { &vop_write_desc, nfsspec_write }, /* write */ + { &vop_fallocate_desc, spec_fallocate }, /* fallocate */ + { &vop_fdiscard_desc, spec_fdiscard }, /* fdiscard */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_ioctl_desc, spec_ioctl }, /* ioctl */ { &vop_poll_desc, spec_poll }, /* poll */ @@ -206,6 +210,8 @@ { &vop_setattr_desc, nfs_setattr }, /* setattr */ { &vop_read_desc, nfsfifo_read }, /* read */ { &vop_write_desc, nfsfifo_write }, /* write */ + { &vop_fallocate_desc, vn_fifo_bypass }, /* fallocate */ + { &vop_fdiscard_desc, vn_fifo_bypass }, /* fdiscard */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */ { &vop_poll_desc, vn_fifo_bypass }, /* poll */ diff -r e2d38198dabf -r 448164dc52d1 sys/opencrypto/cryptodev.c --- a/sys/opencrypto/cryptodev.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/opencrypto/cryptodev.c Sun Mar 23 23:43:03 2014 -0400 @@ -1119,6 +1119,7 @@ .d_poll = cryptoselect /*nopoll*/, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER }; diff -r e2d38198dabf -r 448164dc52d1 sys/rump/include/rump/rump_syscalls.h --- a/sys/rump/include/rump/rump_syscalls.h Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/rump/include/rump/rump_syscalls.h Sun Mar 23 23:43:03 2014 -0400 @@ -1,4 +1,4 @@ -/* $NetBSD: rump_syscalls.h,v 1.73 2014/03/14 00:56:38 pooka Exp $ */ +/* $NetBSD$ */ /* * System call protos in rump namespace. @@ -16,116 +16,564 @@ #include -#ifndef RUMP_SYS_RENAME_FCHROOT -#define RUMP_SYS_RENAME_FCHROOT rump___sysimpl_fchroot +#ifndef RUMP_SYS_RENAME_FKTRACE +#define RUMP_SYS_RENAME_FKTRACE rump___sysimpl_fktrace #endif -#ifndef RUMP_SYS_RENAME__KSEM_INIT -#define RUMP_SYS_RENAME__KSEM_INIT rump___sysimpl__ksem_init +#ifndef RUMP_SYS_RENAME_GETSID +#define RUMP_SYS_RENAME_GETSID rump___sysimpl_getsid #endif -#ifndef RUMP_SYS_RENAME_EXTATTR_LIST_FD -#define RUMP_SYS_RENAME_EXTATTR_LIST_FD rump___sysimpl_extattr_list_fd +#ifndef RUMP_SYS_RENAME_RECVMMSG +#define RUMP_SYS_RENAME_RECVMMSG rump___sysimpl_recvmmsg +#endif + +#ifndef RUMP_SYS_RENAME_UTIMENSAT +#define RUMP_SYS_RENAME_UTIMENSAT rump___sysimpl_utimensat +#endif + +#ifndef RUMP_SYS_RENAME_CHFLAGS +#define RUMP_SYS_RENAME_CHFLAGS rump___sysimpl_chflags +#endif + +#ifndef RUMP_SYS_RENAME_GETGROUPS +#define RUMP_SYS_RENAME_GETGROUPS rump___sysimpl_getgroups +#endif + +#ifndef RUMP_SYS_RENAME_SENDTO +#define RUMP_SYS_RENAME_SENDTO rump___sysimpl_sendto +#endif + +#ifndef RUMP_SYS_RENAME_ADJTIME +#define RUMP_SYS_RENAME_ADJTIME rump___sysimpl_adjtime50 +#endif + +#ifndef RUMP_SYS_RENAME_FHSTATVFS1 +#define RUMP_SYS_RENAME_FHSTATVFS1 rump___sysimpl_fhstatvfs140 +#endif + +#ifndef RUMP_SYS_RENAME_TIMER_DELETE +#define RUMP_SYS_RENAME_TIMER_DELETE rump___sysimpl_timer_delete +#endif + +#ifndef RUMP_SYS_RENAME_PWRITEV +#define RUMP_SYS_RENAME_PWRITEV rump___sysimpl_pwritev +#endif + +#ifndef RUMP_SYS_RENAME_EXTATTR_GET_LINK +#define RUMP_SYS_RENAME_EXTATTR_GET_LINK rump___sysimpl_extattr_get_link +#endif + +#ifndef RUMP_SYS_RENAME_MKDIRAT +#define RUMP_SYS_RENAME_MKDIRAT rump___sysimpl_mkdirat +#endif + +#ifndef RUMP_SYS_RENAME___GETCWD +#define RUMP_SYS_RENAME___GETCWD rump___sysimpl___getcwd +#endif + +#ifndef RUMP_SYS_RENAME_SETRLIMIT +#define RUMP_SYS_RENAME_SETRLIMIT rump___sysimpl_setrlimit +#endif + +#ifndef RUMP_SYS_RENAME_FDATASYNC +#define RUMP_SYS_RENAME_FDATASYNC rump___sysimpl_fdatasync +#endif + +#ifndef RUMP_SYS_RENAME_SETSID +#define RUMP_SYS_RENAME_SETSID rump___sysimpl_setsid +#endif + +#ifndef RUMP_SYS_RENAME_REMOVEXATTR +#define RUMP_SYS_RENAME_REMOVEXATTR rump___sysimpl_removexattr +#endif + +#ifndef RUMP_SYS_RENAME_GETVFSSTAT +#define RUMP_SYS_RENAME_GETVFSSTAT rump___sysimpl_getvfsstat +#endif + +#ifndef RUMP_SYS_RENAME_FLOCK +#define RUMP_SYS_RENAME_FLOCK rump___sysimpl_flock +#endif + +#ifndef RUMP_SYS_RENAME_LISTXATTR +#define RUMP_SYS_RENAME_LISTXATTR rump___sysimpl_listxattr +#endif + +#ifndef RUMP_SYS_RENAME_PIPE2 +#define RUMP_SYS_RENAME_PIPE2 rump___sysimpl_pipe2 +#endif + +#ifndef RUMP_SYS_RENAME_EXTATTR_GET_FD +#define RUMP_SYS_RENAME_EXTATTR_GET_FD rump___sysimpl_extattr_get_fd +#endif + +#ifndef RUMP_SYS_RENAME_LCHOWN +#define RUMP_SYS_RENAME_LCHOWN rump___sysimpl_lchown +#endif + +#ifndef RUMP_SYS_RENAME_GETSOCKNAME +#define RUMP_SYS_RENAME_GETSOCKNAME rump___sysimpl_getsockname +#endif + +#ifndef RUMP_SYS_RENAME_SETTIMEOFDAY +#define RUMP_SYS_RENAME_SETTIMEOFDAY rump___sysimpl_settimeofday50 +#endif + +#ifndef RUMP_SYS_RENAME_CLOCK_NANOSLEEP +#define RUMP_SYS_RENAME_CLOCK_NANOSLEEP rump___sysimpl_clock_nanosleep +#endif + +#ifndef RUMP_SYS_RENAME_UNLINK +#define RUMP_SYS_RENAME_UNLINK rump___sysimpl_unlink +#endif + +#ifndef RUMP_SYS_RENAME_SETPGID +#define RUMP_SYS_RENAME_SETPGID rump___sysimpl_setpgid +#endif + +#ifndef RUMP_SYS_RENAME_FACCESSAT +#define RUMP_SYS_RENAME_FACCESSAT rump___sysimpl_faccessat +#endif + +#ifndef RUMP_SYS_RENAME_FSETXATTR +#define RUMP_SYS_RENAME_FSETXATTR rump___sysimpl_fsetxattr +#endif + +#ifndef RUMP_SYS_RENAME_EXTATTR_SET_FILE +#define RUMP_SYS_RENAME_EXTATTR_SET_FILE rump___sysimpl_extattr_set_file +#endif + +#ifndef RUMP_SYS_RENAME_LSTAT +#define RUMP_SYS_RENAME_LSTAT rump___sysimpl_lstat50 +#endif + +#ifndef RUMP_SYS_RENAME_EXTATTR_SET_FD +#define RUMP_SYS_RENAME_EXTATTR_SET_FD rump___sysimpl_extattr_set_fd +#endif + +#ifndef RUMP_SYS_RENAME_PREADV +#define RUMP_SYS_RENAME_PREADV rump___sysimpl_preadv +#endif + +#ifndef RUMP_SYS_RENAME_PATHCONF +#define RUMP_SYS_RENAME_PATHCONF rump___sysimpl_pathconf +#endif + +#ifndef RUMP_SYS_RENAME_MODCTL +#define RUMP_SYS_RENAME_MODCTL rump___sysimpl_modctl +#endif + +#ifndef RUMP_SYS_RENAME___GETLOGIN +#define RUMP_SYS_RENAME___GETLOGIN rump___sysimpl___getlogin +#endif + +#ifndef RUMP_SYS_RENAME_GETPGRP +#define RUMP_SYS_RENAME_GETPGRP rump___sysimpl_getpgrp +#endif + +#ifndef RUMP_SYS_RENAME_FCHFLAGS +#define RUMP_SYS_RENAME_FCHFLAGS rump___sysimpl_fchflags +#endif + +#ifndef RUMP_SYS_RENAME_OPENAT +#define RUMP_SYS_RENAME_OPENAT rump___sysimpl_openat +#endif + +#ifndef RUMP_SYS_RENAME_DUP +#define RUMP_SYS_RENAME_DUP rump___sysimpl_dup +#endif + +#ifndef RUMP_SYS_RENAME_LCHMOD +#define RUMP_SYS_RENAME_LCHMOD rump___sysimpl_lchmod +#endif + +#ifndef RUMP_SYS_RENAME___QUOTACTL +#define RUMP_SYS_RENAME___QUOTACTL rump___sysimpl___quotactl +#endif + +#ifndef RUMP_SYS_RENAME_GETPEERNAME +#define RUMP_SYS_RENAME_GETPEERNAME rump___sysimpl_getpeername +#endif + +#ifndef RUMP_SYS_RENAME_GETEGID +#define RUMP_SYS_RENAME_GETEGID rump___sysimpl_getegid +#endif + +#ifndef RUMP_SYS_RENAME_EXTATTR_SET_LINK +#define RUMP_SYS_RENAME_EXTATTR_SET_LINK rump___sysimpl_extattr_set_link +#endif + +#ifndef RUMP_SYS_RENAME_TIMER_CREATE +#define RUMP_SYS_RENAME_TIMER_CREATE rump___sysimpl_timer_create +#endif + +#ifndef RUMP_SYS_RENAME_FDISCARD +#define RUMP_SYS_RENAME_FDISCARD rump___sysimpl_fdiscard +#endif + +#ifndef RUMP_SYS_RENAME_PACCEPT +#define RUMP_SYS_RENAME_PACCEPT rump___sysimpl_paccept +#endif + +#ifndef RUMP_SYS_RENAME_EXTATTR_LIST_FILE +#define RUMP_SYS_RENAME_EXTATTR_LIST_FILE rump___sysimpl_extattr_list_file +#endif + +#ifndef RUMP_SYS_RENAME__KSEM_TRYWAIT +#define RUMP_SYS_RENAME__KSEM_TRYWAIT rump___sysimpl__ksem_trywait +#endif + +#ifndef RUMP_SYS_RENAME_LINK +#define RUMP_SYS_RENAME_LINK rump___sysimpl_link +#endif + +#ifndef RUMP_SYS_RENAME_LCHFLAGS +#define RUMP_SYS_RENAME_LCHFLAGS rump___sysimpl_lchflags +#endif + +#ifndef RUMP_SYS_RENAME_DUP2 +#define RUMP_SYS_RENAME_DUP2 rump___sysimpl_dup2 +#endif + +#ifndef RUMP_SYS_RENAME_DUP3 +#define RUMP_SYS_RENAME_DUP3 rump___sysimpl_dup3 +#endif + +#ifndef RUMP_SYS_RENAME_FHOPEN +#define RUMP_SYS_RENAME_FHOPEN rump___sysimpl_fhopen40 +#endif + +#ifndef RUMP_SYS_RENAME_SELECT +#define RUMP_SYS_RENAME_SELECT rump___sysimpl_select50 +#endif + +#ifndef RUMP_SYS_RENAME_EXTATTR_LIST_LINK +#define RUMP_SYS_RENAME_EXTATTR_LIST_LINK rump___sysimpl_extattr_list_link +#endif + +#ifndef RUMP_SYS_RENAME_REVOKE +#define RUMP_SYS_RENAME_REVOKE rump___sysimpl_revoke +#endif + +#ifndef RUMP_SYS_RENAME_FSTATVFS1 +#define RUMP_SYS_RENAME_FSTATVFS1 rump___sysimpl_fstatvfs1 +#endif + +#ifndef RUMP_SYS_RENAME_UTRACE +#define RUMP_SYS_RENAME_UTRACE rump___sysimpl_utrace +#endif + +#ifndef RUMP_SYS_RENAME_UMASK +#define RUMP_SYS_RENAME_UMASK rump___sysimpl_umask +#endif + +#ifndef RUMP_SYS_RENAME_FCNTL +#define RUMP_SYS_RENAME_FCNTL rump___sysimpl_fcntl +#endif + +#ifndef RUMP_SYS_RENAME_MKFIFO +#define RUMP_SYS_RENAME_MKFIFO rump___sysimpl_mkfifo +#endif + +#ifndef RUMP_SYS_RENAME_POLLTS +#define RUMP_SYS_RENAME_POLLTS rump___sysimpl_pollts50 +#endif + +#ifndef RUMP_SYS_RENAME_OPEN +#define RUMP_SYS_RENAME_OPEN rump___sysimpl_open +#endif + +#ifndef RUMP_SYS_RENAME_ACCESS +#define RUMP_SYS_RENAME_ACCESS rump___sysimpl_access +#endif + +#ifndef RUMP_SYS_RENAME_MKNOD +#define RUMP_SYS_RENAME_MKNOD rump___sysimpl_mknod50 +#endif + +#ifndef RUMP_SYS_RENAME_TRUNCATE +#define RUMP_SYS_RENAME_TRUNCATE rump___sysimpl_truncate +#endif + +#ifndef RUMP_SYS_RENAME_SETGID +#define RUMP_SYS_RENAME_SETGID rump___sysimpl_setgid +#endif + +#ifndef RUMP_SYS_RENAME_LREMOVEXATTR +#define RUMP_SYS_RENAME_LREMOVEXATTR rump___sysimpl_lremovexattr +#endif + +#ifndef RUMP_SYS_RENAME_RMDIR +#define RUMP_SYS_RENAME_RMDIR rump___sysimpl_rmdir +#endif + +#ifndef RUMP_SYS_RENAME_KQUEUE1 +#define RUMP_SYS_RENAME_KQUEUE1 rump___sysimpl_kqueue1 +#endif + +#ifndef RUMP_SYS_RENAME_CLOCK_GETRES +#define RUMP_SYS_RENAME_CLOCK_GETRES rump___sysimpl_clock_getres50 +#endif + +#ifndef RUMP_SYS_RENAME_GETGID_WITH_EGID +#define RUMP_SYS_RENAME_GETGID_WITH_EGID rump___sysimpl_getgid +#endif + +#ifndef RUMP_SYS_RENAME_SYMLINKAT +#define RUMP_SYS_RENAME_SYMLINKAT rump___sysimpl_symlinkat +#endif + +#ifndef RUMP_SYS_RENAME_FSYNC_RANGE +#define RUMP_SYS_RENAME_FSYNC_RANGE rump___sysimpl_fsync_range #endif #ifndef RUMP_SYS_RENAME_PWRITE #define RUMP_SYS_RENAME_PWRITE rump___sysimpl_pwrite #endif +#ifndef RUMP_SYS_RENAME_GETRLIMIT +#define RUMP_SYS_RENAME_GETRLIMIT rump___sysimpl_getrlimit +#endif + +#ifndef RUMP_SYS_RENAME_RENAMEAT +#define RUMP_SYS_RENAME_RENAMEAT rump___sysimpl_renameat +#endif + +#ifndef RUMP_SYS_RENAME_TIMER_GETTIME +#define RUMP_SYS_RENAME_TIMER_GETTIME rump___sysimpl_timer_gettime50 +#endif + #ifndef RUMP_SYS_RENAME_FGETXATTR #define RUMP_SYS_RENAME_FGETXATTR rump___sysimpl_fgetxattr #endif -#ifndef RUMP_SYS_RENAME_GETGID_WITH_EGID -#define RUMP_SYS_RENAME_GETGID_WITH_EGID rump___sysimpl_getgid +#ifndef RUMP_SYS_RENAME_SENDMSG +#define RUMP_SYS_RENAME_SENDMSG rump___sysimpl_sendmsg +#endif + +#ifndef RUMP_SYS_RENAME__KSEM_OPEN +#define RUMP_SYS_RENAME__KSEM_OPEN rump___sysimpl__ksem_open +#endif + +#ifndef RUMP_SYS_RENAME_FLISTXATTR +#define RUMP_SYS_RENAME_FLISTXATTR rump___sysimpl_flistxattr +#endif + +#ifndef RUMP_SYS_RENAME_LUTIMES +#define RUMP_SYS_RENAME_LUTIMES rump___sysimpl_lutimes50 +#endif + +#ifndef RUMP_SYS_RENAME_CLOCK_SETTIME +#define RUMP_SYS_RENAME_CLOCK_SETTIME rump___sysimpl_clock_settime50 +#endif + +#ifndef RUMP_SYS_RENAME_SETITIMER +#define RUMP_SYS_RENAME_SETITIMER rump___sysimpl_setitimer50 +#endif + +#ifndef RUMP_SYS_RENAME_SHUTDOWN +#define RUMP_SYS_RENAME_SHUTDOWN rump___sysimpl_shutdown +#endif + +#ifndef RUMP_SYS_RENAME_PREAD +#define RUMP_SYS_RENAME_PREAD rump___sysimpl_pread +#endif + +#ifndef RUMP_SYS_RENAME_LISTEN +#define RUMP_SYS_RENAME_LISTEN rump___sysimpl_listen +#endif + +#ifndef RUMP_SYS_RENAME_MKDIR +#define RUMP_SYS_RENAME_MKDIR rump___sysimpl_mkdir +#endif + +#ifndef RUMP_SYS_RENAME_GETFH +#define RUMP_SYS_RENAME_GETFH rump___sysimpl_getfh30 +#endif + +#ifndef RUMP_SYS_RENAME_GETEUID +#define RUMP_SYS_RENAME_GETEUID rump___sysimpl_geteuid +#endif + +#ifndef RUMP_SYS_RENAME_FSYNC +#define RUMP_SYS_RENAME_FSYNC rump___sysimpl_fsync +#endif + +#ifndef RUMP_SYS_RENAME_EXTATTR_DELETE_FILE +#define RUMP_SYS_RENAME_EXTATTR_DELETE_FILE rump___sysimpl_extattr_delete_file +#endif + +#ifndef RUMP_SYS_RENAME_ISSETUGID +#define RUMP_SYS_RENAME_ISSETUGID rump___sysimpl_issetugid +#endif + +#ifndef RUMP_SYS_RENAME_LGETXATTR +#define RUMP_SYS_RENAME_LGETXATTR rump___sysimpl_lgetxattr +#endif + +#ifndef RUMP_SYS_RENAME_KEVENT +#define RUMP_SYS_RENAME_KEVENT rump___sysimpl_kevent50 +#endif + +#ifndef RUMP_SYS_RENAME_POSIX_FADVISE +#define RUMP_SYS_RENAME_POSIX_FADVISE rump___sysimpl_posix_fadvise50 +#endif + +#ifndef RUMP_SYS_RENAME_FSTAT +#define RUMP_SYS_RENAME_FSTAT rump___sysimpl_fstat50 +#endif + +#ifndef RUMP_SYS_RENAME__KSEM_DESTROY +#define RUMP_SYS_RENAME__KSEM_DESTROY rump___sysimpl__ksem_destroy +#endif + +#ifndef RUMP_SYS_RENAME_MKNODAT +#define RUMP_SYS_RENAME_MKNODAT rump___sysimpl_mknodat +#endif + +#ifndef RUMP_SYS_RENAME_CHDIR +#define RUMP_SYS_RENAME_CHDIR rump___sysimpl_chdir +#endif + +#ifndef RUMP_SYS_RENAME_EXTATTR_DELETE_LINK +#define RUMP_SYS_RENAME_EXTATTR_DELETE_LINK rump___sysimpl_extattr_delete_link +#endif + +#ifndef RUMP_SYS_RENAME_CHOWN +#define RUMP_SYS_RENAME_CHOWN rump___sysimpl_chown +#endif + +#ifndef RUMP_SYS_RENAME_CLOCK_GETTIME +#define RUMP_SYS_RENAME_CLOCK_GETTIME rump___sysimpl_clock_gettime50 +#endif + +#ifndef RUMP_SYS_RENAME_FCHDIR +#define RUMP_SYS_RENAME_FCHDIR rump___sysimpl_fchdir +#endif + +#ifndef RUMP_SYS_RENAME_RECVMSG +#define RUMP_SYS_RENAME_RECVMSG rump___sysimpl_recvmsg +#endif + +#ifndef RUMP_SYS_RENAME_FCHOWN +#define RUMP_SYS_RENAME_FCHOWN rump___sysimpl_fchown +#endif + +#ifndef RUMP_SYS_RENAME_SETREGID +#define RUMP_SYS_RENAME_SETREGID rump___sysimpl_setregid +#endif + +#ifndef RUMP_SYS_RENAME_POLL +#define RUMP_SYS_RENAME_POLL rump___sysimpl_poll +#endif + +#ifndef RUMP_SYS_RENAME_READV +#define RUMP_SYS_RENAME_READV rump___sysimpl_readv +#endif + +#ifndef RUMP_SYS_RENAME_SYMLINK +#define RUMP_SYS_RENAME_SYMLINK rump___sysimpl_symlink +#endif + +#ifndef RUMP_SYS_RENAME_SENDMMSG +#define RUMP_SYS_RENAME_SENDMMSG rump___sysimpl_sendmmsg +#endif + +#ifndef RUMP_SYS_RENAME_PSELECT +#define RUMP_SYS_RENAME_PSELECT rump___sysimpl_pselect50 +#endif + +#ifndef RUMP_SYS_RENAME_SETGROUPS +#define RUMP_SYS_RENAME_SETGROUPS rump___sysimpl_setgroups +#endif + +#ifndef RUMP_SYS_RENAME_SETXATTR +#define RUMP_SYS_RENAME_SETXATTR rump___sysimpl_setxattr +#endif + +#ifndef RUMP_SYS_RENAME_SETEGID +#define RUMP_SYS_RENAME_SETEGID rump___sysimpl_setegid +#endif + +#ifndef RUMP_SYS_RENAME_GETSOCKOPT +#define RUMP_SYS_RENAME_GETSOCKOPT rump___sysimpl_getsockopt +#endif + +#ifndef RUMP_SYS_RENAME_CONNECT +#define RUMP_SYS_RENAME_CONNECT rump___sysimpl_connect +#endif + +#ifndef RUMP_SYS_RENAME_LSEEK +#define RUMP_SYS_RENAME_LSEEK rump___sysimpl_lseek +#endif + +#ifndef RUMP_SYS_RENAME_MKFIFOAT +#define RUMP_SYS_RENAME_MKFIFOAT rump___sysimpl_mkfifoat +#endif + +#ifndef RUMP_SYS_RENAME_EXTATTR_DELETE_FD +#define RUMP_SYS_RENAME_EXTATTR_DELETE_FD rump___sysimpl_extattr_delete_fd +#endif + +#ifndef RUMP_SYS_RENAME_CHMOD +#define RUMP_SYS_RENAME_CHMOD rump___sysimpl_chmod +#endif + +#ifndef RUMP_SYS_RENAME_BIND +#define RUMP_SYS_RENAME_BIND rump___sysimpl_bind +#endif + +#ifndef RUMP_SYS_RENAME__KSEM_WAIT +#define RUMP_SYS_RENAME__KSEM_WAIT rump___sysimpl__ksem_wait +#endif + +#ifndef RUMP_SYS_RENAME_FCHOWNAT +#define RUMP_SYS_RENAME_FCHOWNAT rump___sysimpl_fchownat +#endif + +#ifndef RUMP_SYS_RENAME_SETUID +#define RUMP_SYS_RENAME_SETUID rump___sysimpl_setuid +#endif + +#ifndef RUMP_SYS_RENAME_GETUID_WITH_EUID +#define RUMP_SYS_RENAME_GETUID_WITH_EUID rump___sysimpl_getuid +#endif + +#ifndef RUMP_SYS_RENAME_CHROOT +#define RUMP_SYS_RENAME_CHROOT rump___sysimpl_chroot +#endif + +#ifndef RUMP_SYS_RENAME_FCHMOD +#define RUMP_SYS_RENAME_FCHMOD rump___sysimpl_fchmod +#endif + +#ifndef RUMP_SYS_RENAME_FPATHCONF +#define RUMP_SYS_RENAME_FPATHCONF rump___sysimpl_fpathconf +#endif + +#ifndef RUMP_SYS_RENAME_UNMOUNT +#define RUMP_SYS_RENAME_UNMOUNT rump___sysimpl_unmount +#endif + +#ifndef RUMP_SYS_RENAME_READLINK +#define RUMP_SYS_RENAME_READLINK rump___sysimpl_readlink #endif #ifndef RUMP_SYS_RENAME_FUTIMENS #define RUMP_SYS_RENAME_FUTIMENS rump___sysimpl_futimens #endif -#ifndef RUMP_SYS_RENAME_PREAD -#define RUMP_SYS_RENAME_PREAD rump___sysimpl_pread +#ifndef RUMP_SYS_RENAME_LSETXATTR +#define RUMP_SYS_RENAME_LSETXATTR rump___sysimpl_lsetxattr #endif -#ifndef RUMP_SYS_RENAME__KSEM_TRYWAIT -#define RUMP_SYS_RENAME__KSEM_TRYWAIT rump___sysimpl__ksem_trywait +#ifndef RUMP_SYS_RENAME__KSEM_GETVALUE +#define RUMP_SYS_RENAME__KSEM_GETVALUE rump___sysimpl__ksem_getvalue #endif -#ifndef RUMP_SYS_RENAME_READLINK -#define RUMP_SYS_RENAME_READLINK rump___sysimpl_readlink -#endif - -#ifndef RUMP_SYS_RENAME_FCHFLAGS -#define RUMP_SYS_RENAME_FCHFLAGS rump___sysimpl_fchflags -#endif - -#ifndef RUMP_SYS_RENAME_RECVMSG -#define RUMP_SYS_RENAME_RECVMSG rump___sysimpl_recvmsg -#endif - -#ifndef RUMP_SYS_RENAME_PSELECT -#define RUMP_SYS_RENAME_PSELECT rump___sysimpl_pselect50 -#endif - -#ifndef RUMP_SYS_RENAME_FLISTXATTR -#define RUMP_SYS_RENAME_FLISTXATTR rump___sysimpl_flistxattr -#endif - -#ifndef RUMP_SYS_RENAME_POLL -#define RUMP_SYS_RENAME_POLL rump___sysimpl_poll -#endif - -#ifndef RUMP_SYS_RENAME_FCHOWN -#define RUMP_SYS_RENAME_FCHOWN rump___sysimpl_fchown -#endif - -#ifndef RUMP_SYS_RENAME_KQUEUE1 -#define RUMP_SYS_RENAME_KQUEUE1 rump___sysimpl_kqueue1 -#endif - -#ifndef RUMP_SYS_RENAME_TIMER_CREATE -#define RUMP_SYS_RENAME_TIMER_CREATE rump___sysimpl_timer_create -#endif - -#ifndef RUMP_SYS_RENAME_FLOCK -#define RUMP_SYS_RENAME_FLOCK rump___sysimpl_flock -#endif - -#ifndef RUMP_SYS_RENAME_GETUID_WITH_EUID -#define RUMP_SYS_RENAME_GETUID_WITH_EUID rump___sysimpl_getuid -#endif - -#ifndef RUMP_SYS_RENAME_MKNODAT -#define RUMP_SYS_RENAME_MKNODAT rump___sysimpl_mknodat -#endif - -#ifndef RUMP_SYS_RENAME_EXTATTRCTL -#define RUMP_SYS_RENAME_EXTATTRCTL rump___sysimpl_extattrctl -#endif - -#ifndef RUMP_SYS_RENAME_GETVFSSTAT -#define RUMP_SYS_RENAME_GETVFSSTAT rump___sysimpl_getvfsstat -#endif - -#ifndef RUMP_SYS_RENAME_BIND -#define RUMP_SYS_RENAME_BIND rump___sysimpl_bind -#endif - -#ifndef RUMP_SYS_RENAME___GETLOGIN -#define RUMP_SYS_RENAME___GETLOGIN rump___sysimpl___getlogin -#endif - -#ifndef RUMP_SYS_RENAME_CLOCK_SETTIME -#define RUMP_SYS_RENAME_CLOCK_SETTIME rump___sysimpl_clock_settime50 -#endif - -#ifndef RUMP_SYS_RENAME_CLOCK_GETTIME -#define RUMP_SYS_RENAME_CLOCK_GETTIME rump___sysimpl_clock_gettime50 -#endif - -#ifndef RUMP_SYS_RENAME_SETEGID -#define RUMP_SYS_RENAME_SETEGID rump___sysimpl_setegid +#ifndef RUMP_SYS_RENAME_READ +#define RUMP_SYS_RENAME_READ rump___sysimpl_read #endif #ifndef RUMP_SYS_RENAME_RENAME @@ -136,128 +584,140 @@ #define RUMP_SYS_RENAME_WRITEV rump___sysimpl_writev #endif -#ifndef RUMP_SYS_RENAME_SETGROUPS -#define RUMP_SYS_RENAME_SETGROUPS rump___sysimpl_setgroups +#ifndef RUMP_SYS_RENAME_CLOSE +#define RUMP_SYS_RENAME_CLOSE rump___sysimpl_close #endif -#ifndef RUMP_SYS_RENAME_FCHOWNAT -#define RUMP_SYS_RENAME_FCHOWNAT rump___sysimpl_fchownat +#ifndef RUMP_SYS_RENAME_GETPGID +#define RUMP_SYS_RENAME_GETPGID rump___sysimpl_getpgid #endif -#ifndef RUMP_SYS_RENAME_SENDMSG -#define RUMP_SYS_RENAME_SENDMSG rump___sysimpl_sendmsg +#ifndef RUMP_SYS_RENAME_NANOSLEEP +#define RUMP_SYS_RENAME_NANOSLEEP rump___sysimpl_nanosleep50 #endif -#ifndef RUMP_SYS_RENAME_MKFIFOAT -#define RUMP_SYS_RENAME_MKFIFOAT rump___sysimpl_mkfifoat +#ifndef RUMP_SYS_RENAME_IOCTL +#define RUMP_SYS_RENAME_IOCTL rump___sysimpl_ioctl #endif -#ifndef RUMP_SYS_RENAME_CLOCK_GETRES -#define RUMP_SYS_RENAME_CLOCK_GETRES rump___sysimpl_clock_getres50 +#ifndef RUMP_SYS_RENAME_FHSTAT +#define RUMP_SYS_RENAME_FHSTAT rump___sysimpl_fhstat50 #endif -#ifndef RUMP_SYS_RENAME_REBOOT -#define RUMP_SYS_RENAME_REBOOT rump___sysimpl_reboot +#ifndef RUMP_SYS_RENAME_RECVFROM +#define RUMP_SYS_RENAME_RECVFROM rump___sysimpl_recvfrom #endif -#ifndef RUMP_SYS_RENAME_LISTEN -#define RUMP_SYS_RENAME_LISTEN rump___sysimpl_listen +#ifndef RUMP_SYS_RENAME__KSEM_INIT +#define RUMP_SYS_RENAME__KSEM_INIT rump___sysimpl__ksem_init #endif -#ifndef RUMP_SYS_RENAME_CONNECT -#define RUMP_SYS_RENAME_CONNECT rump___sysimpl_connect +#ifndef RUMP_SYS_RENAME__KSEM_CLOSE +#define RUMP_SYS_RENAME__KSEM_CLOSE rump___sysimpl__ksem_close #endif -#ifndef RUMP_SYS_RENAME_PREADV -#define RUMP_SYS_RENAME_PREADV rump___sysimpl_preadv +#ifndef RUMP_SYS_RENAME_MOUNT +#define RUMP_SYS_RENAME_MOUNT rump___sysimpl_mount50 #endif -#ifndef RUMP_SYS_RENAME_NFSSVC -#define RUMP_SYS_RENAME_NFSSVC rump___sysimpl_nfssvc -#endif - -#ifndef RUMP_SYS_RENAME_DUP2 -#define RUMP_SYS_RENAME_DUP2 rump___sysimpl_dup2 -#endif - -#ifndef RUMP_SYS_RENAME_CLOCK_NANOSLEEP -#define RUMP_SYS_RENAME_CLOCK_NANOSLEEP rump___sysimpl_clock_nanosleep +#ifndef RUMP_SYS_RENAME_UTIMES +#define RUMP_SYS_RENAME_UTIMES rump___sysimpl_utimes50 #endif #ifndef RUMP_SYS_RENAME_FCHMODAT #define RUMP_SYS_RENAME_FCHMODAT rump___sysimpl_fchmodat #endif -#ifndef RUMP_SYS_RENAME_DUP3 -#define RUMP_SYS_RENAME_DUP3 rump___sysimpl_dup3 +#ifndef RUMP_SYS_RENAME_KTRACE +#define RUMP_SYS_RENAME_KTRACE rump___sysimpl_ktrace +#endif + +#ifndef RUMP_SYS_RENAME_FALLOCATE +#define RUMP_SYS_RENAME_FALLOCATE rump___sysimpl_fallocate +#endif + +#ifndef RUMP_SYS_RENAME_SYNC +#define RUMP_SYS_RENAME_SYNC rump___sysimpl_sync +#endif + +#ifndef RUMP_SYS_RENAME_UNLINKAT +#define RUMP_SYS_RENAME_UNLINKAT rump___sysimpl_unlinkat +#endif + +#ifndef RUMP_SYS_RENAME_LLISTXATTR +#define RUMP_SYS_RENAME_LLISTXATTR rump___sysimpl_llistxattr #endif #ifndef RUMP_SYS_RENAME__KSEM_POST #define RUMP_SYS_RENAME__KSEM_POST rump___sysimpl__ksem_post #endif -#ifndef RUMP_SYS_RENAME_FSYNC -#define RUMP_SYS_RENAME_FSYNC rump___sysimpl_fsync +#ifndef RUMP_SYS_RENAME_STATVFS1 +#define RUMP_SYS_RENAME_STATVFS1 rump___sysimpl_statvfs1 #endif -#ifndef RUMP_SYS_RENAME_LSTAT -#define RUMP_SYS_RENAME_LSTAT rump___sysimpl_lstat50 +#ifndef RUMP_SYS_RENAME_STAT +#define RUMP_SYS_RENAME_STAT rump___sysimpl_stat50 #endif -#ifndef RUMP_SYS_RENAME_LCHMOD -#define RUMP_SYS_RENAME_LCHMOD rump___sysimpl_lchmod +#ifndef RUMP_SYS_RENAME_SETSOCKOPT +#define RUMP_SYS_RENAME_SETSOCKOPT rump___sysimpl_setsockopt #endif #ifndef RUMP_SYS_RENAME_GETDENTS #define RUMP_SYS_RENAME_GETDENTS rump___sysimpl_getdents30 #endif -#ifndef RUMP_SYS_RENAME_FDATASYNC -#define RUMP_SYS_RENAME_FDATASYNC rump___sysimpl_fdatasync +#ifndef RUMP_SYS_RENAME_KQUEUE +#define RUMP_SYS_RENAME_KQUEUE rump___sysimpl_kqueue #endif -#ifndef RUMP_SYS_RENAME_SETITIMER -#define RUMP_SYS_RENAME_SETITIMER rump___sysimpl_setitimer50 +#ifndef RUMP_SYS_RENAME___SYSCTL +#define RUMP_SYS_RENAME___SYSCTL rump___sysimpl___sysctl #endif -#ifndef RUMP_SYS_RENAME_PATHCONF -#define RUMP_SYS_RENAME_PATHCONF rump___sysimpl_pathconf +#ifndef RUMP_SYS_RENAME_FREMOVEXATTR +#define RUMP_SYS_RENAME_FREMOVEXATTR rump___sysimpl_fremovexattr +#endif + +#ifndef RUMP_SYS_RENAME_EXTATTRCTL +#define RUMP_SYS_RENAME_EXTATTRCTL rump___sysimpl_extattrctl +#endif + +#ifndef RUMP_SYS_RENAME_GETITIMER +#define RUMP_SYS_RENAME_GETITIMER rump___sysimpl_getitimer50 +#endif + +#ifndef RUMP_SYS_RENAME_GETPID_WITH_PPID +#define RUMP_SYS_RENAME_GETPID_WITH_PPID rump___sysimpl_getpid +#endif + +#ifndef RUMP_SYS_RENAME_SETREUID +#define RUMP_SYS_RENAME_SETREUID rump___sysimpl_setreuid +#endif + +#ifndef RUMP_SYS_RENAME_FSTATAT +#define RUMP_SYS_RENAME_FSTATAT rump___sysimpl_fstatat +#endif + +#ifndef RUMP_SYS_RENAME_LINKAT +#define RUMP_SYS_RENAME_LINKAT rump___sysimpl_linkat +#endif + +#ifndef RUMP_SYS_RENAME_TIMER_SETTIME +#define RUMP_SYS_RENAME_TIMER_SETTIME rump___sysimpl_timer_settime50 #endif #ifndef RUMP_SYS_RENAME_SOCKETPAIR #define RUMP_SYS_RENAME_SOCKETPAIR rump___sysimpl_socketpair #endif -#ifndef RUMP_SYS_RENAME_POLLTS -#define RUMP_SYS_RENAME_POLLTS rump___sysimpl_pollts50 +#ifndef RUMP_SYS_RENAME_WRITE +#define RUMP_SYS_RENAME_WRITE rump___sysimpl_write #endif -#ifndef RUMP_SYS_RENAME_SETSID -#define RUMP_SYS_RENAME_SETSID rump___sysimpl_setsid -#endif - -#ifndef RUMP_SYS_RENAME_FCHDIR -#define RUMP_SYS_RENAME_FCHDIR rump___sysimpl_fchdir -#endif - -#ifndef RUMP_SYS_RENAME_FSTATVFS1 -#define RUMP_SYS_RENAME_FSTATVFS1 rump___sysimpl_fstatvfs1 -#endif - -#ifndef RUMP_SYS_RENAME_CLOSE -#define RUMP_SYS_RENAME_CLOSE rump___sysimpl_close -#endif - -#ifndef RUMP_SYS_RENAME_GETEGID -#define RUMP_SYS_RENAME_GETEGID rump___sysimpl_getegid -#endif - -#ifndef RUMP_SYS_RENAME_FSTAT -#define RUMP_SYS_RENAME_FSTAT rump___sysimpl_fstat50 -#endif - -#ifndef RUMP_SYS_RENAME_UTIMES -#define RUMP_SYS_RENAME_UTIMES rump___sysimpl_utimes50 +#ifndef RUMP_SYS_RENAME___SETLOGIN +#define RUMP_SYS_RENAME___SETLOGIN rump___sysimpl___setlogin #endif #ifndef RUMP_SYS_RENAME_SOCKET @@ -268,230 +728,34 @@ #define RUMP_SYS_RENAME_TIMER_GETOVERRUN rump___sysimpl_timer_getoverrun #endif -#ifndef RUMP_SYS_RENAME_RMDIR -#define RUMP_SYS_RENAME_RMDIR rump___sysimpl_rmdir +#ifndef RUMP_SYS_RENAME__KSEM_TIMEDWAIT +#define RUMP_SYS_RENAME__KSEM_TIMEDWAIT rump___sysimpl__ksem_timedwait #endif -#ifndef RUMP_SYS_RENAME_SETREGID -#define RUMP_SYS_RENAME_SETREGID rump___sysimpl_setregid +#ifndef RUMP_SYS_RENAME_FTRUNCATE +#define RUMP_SYS_RENAME_FTRUNCATE rump___sysimpl_ftruncate #endif -#ifndef RUMP_SYS_RENAME_FCHMOD -#define RUMP_SYS_RENAME_FCHMOD rump___sysimpl_fchmod +#ifndef RUMP_SYS_RENAME_FCHROOT +#define RUMP_SYS_RENAME_FCHROOT rump___sysimpl_fchroot #endif -#ifndef RUMP_SYS_RENAME_GETGROUPS -#define RUMP_SYS_RENAME_GETGROUPS rump___sysimpl_getgroups +#ifndef RUMP_SYS_RENAME_SETEUID +#define RUMP_SYS_RENAME_SETEUID rump___sysimpl_seteuid #endif -#ifndef RUMP_SYS_RENAME_GETPEERNAME -#define RUMP_SYS_RENAME_GETPEERNAME rump___sysimpl_getpeername +#ifndef RUMP_SYS_RENAME_REBOOT +#define RUMP_SYS_RENAME_REBOOT rump___sysimpl_reboot #endif -#ifndef RUMP_SYS_RENAME_UNLINKAT -#define RUMP_SYS_RENAME_UNLINKAT rump___sysimpl_unlinkat -#endif - -#ifndef RUMP_SYS_RENAME__KSEM_OPEN -#define RUMP_SYS_RENAME__KSEM_OPEN rump___sysimpl__ksem_open -#endif - -#ifndef RUMP_SYS_RENAME_EXTATTR_DELETE_FD -#define RUMP_SYS_RENAME_EXTATTR_DELETE_FD rump___sysimpl_extattr_delete_fd -#endif - -#ifndef RUMP_SYS_RENAME_FKTRACE -#define RUMP_SYS_RENAME_FKTRACE rump___sysimpl_fktrace -#endif - -#ifndef RUMP_SYS_RENAME_MODCTL -#define RUMP_SYS_RENAME_MODCTL rump___sysimpl_modctl -#endif - -#ifndef RUMP_SYS_RENAME_SETSOCKOPT -#define RUMP_SYS_RENAME_SETSOCKOPT rump___sysimpl_setsockopt -#endif - -#ifndef RUMP_SYS_RENAME_EXTATTR_DELETE_LINK -#define RUMP_SYS_RENAME_EXTATTR_DELETE_LINK rump___sysimpl_extattr_delete_link -#endif - -#ifndef RUMP_SYS_RENAME___GETCWD -#define RUMP_SYS_RENAME___GETCWD rump___sysimpl___getcwd -#endif - -#ifndef RUMP_SYS_RENAME_PWRITEV -#define RUMP_SYS_RENAME_PWRITEV rump___sysimpl_pwritev -#endif - -#ifndef RUMP_SYS_RENAME_MKDIRAT -#define RUMP_SYS_RENAME_MKDIRAT rump___sysimpl_mkdirat -#endif - -#ifndef RUMP_SYS_RENAME_REMOVEXATTR -#define RUMP_SYS_RENAME_REMOVEXATTR rump___sysimpl_removexattr -#endif - -#ifndef RUMP_SYS_RENAME_GETSOCKNAME -#define RUMP_SYS_RENAME_GETSOCKNAME rump___sysimpl_getsockname -#endif - -#ifndef RUMP_SYS_RENAME_FHOPEN -#define RUMP_SYS_RENAME_FHOPEN rump___sysimpl_fhopen40 -#endif - -#ifndef RUMP_SYS_RENAME_EXTATTR_LIST_LINK -#define RUMP_SYS_RENAME_EXTATTR_LIST_LINK rump___sysimpl_extattr_list_link -#endif - -#ifndef RUMP_SYS_RENAME_ISSETUGID -#define RUMP_SYS_RENAME_ISSETUGID rump___sysimpl_issetugid -#endif - -#ifndef RUMP_SYS_RENAME__KSEM_CLOSE -#define RUMP_SYS_RENAME__KSEM_CLOSE rump___sysimpl__ksem_close -#endif - -#ifndef RUMP_SYS_RENAME_RECVFROM -#define RUMP_SYS_RENAME_RECVFROM rump___sysimpl_recvfrom -#endif - -#ifndef RUMP_SYS_RENAME___QUOTACTL -#define RUMP_SYS_RENAME___QUOTACTL rump___sysimpl___quotactl +#ifndef RUMP_SYS_RENAME_ACCEPT +#define RUMP_SYS_RENAME_ACCEPT rump___sysimpl_accept #endif #ifndef RUMP_SYS_RENAME_READLINKAT #define RUMP_SYS_RENAME_READLINKAT rump___sysimpl_readlinkat #endif -#ifndef RUMP_SYS_RENAME_EXTATTR_GET_LINK -#define RUMP_SYS_RENAME_EXTATTR_GET_LINK rump___sysimpl_extattr_get_link -#endif - -#ifndef RUMP_SYS_RENAME_EXTATTR_SET_LINK -#define RUMP_SYS_RENAME_EXTATTR_SET_LINK rump___sysimpl_extattr_set_link -#endif - -#ifndef RUMP_SYS_RENAME_MKDIR -#define RUMP_SYS_RENAME_MKDIR rump___sysimpl_mkdir -#endif - -#ifndef RUMP_SYS_RENAME_REVOKE -#define RUMP_SYS_RENAME_REVOKE rump___sysimpl_revoke -#endif - -#ifndef RUMP_SYS_RENAME_GETITIMER -#define RUMP_SYS_RENAME_GETITIMER rump___sysimpl_getitimer50 -#endif - -#ifndef RUMP_SYS_RENAME_SETXATTR -#define RUMP_SYS_RENAME_SETXATTR rump___sysimpl_setxattr -#endif - -#ifndef RUMP_SYS_RENAME_FSYNC_RANGE -#define RUMP_SYS_RENAME_FSYNC_RANGE rump___sysimpl_fsync_range -#endif - -#ifndef RUMP_SYS_RENAME_FSTATAT -#define RUMP_SYS_RENAME_FSTATAT rump___sysimpl_fstatat -#endif - -#ifndef RUMP_SYS_RENAME_FACCESSAT -#define RUMP_SYS_RENAME_FACCESSAT rump___sysimpl_faccessat -#endif - -#ifndef RUMP_SYS_RENAME_GETSID -#define RUMP_SYS_RENAME_GETSID rump___sysimpl_getsid -#endif - -#ifndef RUMP_SYS_RENAME_SETRLIMIT -#define RUMP_SYS_RENAME_SETRLIMIT rump___sysimpl_setrlimit -#endif - -#ifndef RUMP_SYS_RENAME_SYMLINKAT -#define RUMP_SYS_RENAME_SYMLINKAT rump___sysimpl_symlinkat -#endif - -#ifndef RUMP_SYS_RENAME_OPENAT -#define RUMP_SYS_RENAME_OPENAT rump___sysimpl_openat -#endif - -#ifndef RUMP_SYS_RENAME_MOUNT -#define RUMP_SYS_RENAME_MOUNT rump___sysimpl_mount50 -#endif - -#ifndef RUMP_SYS_RENAME_KQUEUE -#define RUMP_SYS_RENAME_KQUEUE rump___sysimpl_kqueue -#endif - -#ifndef RUMP_SYS_RENAME_GETPGRP -#define RUMP_SYS_RENAME_GETPGRP rump___sysimpl_getpgrp -#endif - -#ifndef RUMP_SYS_RENAME_SETUID -#define RUMP_SYS_RENAME_SETUID rump___sysimpl_setuid -#endif - -#ifndef RUMP_SYS_RENAME_UTIMENSAT -#define RUMP_SYS_RENAME_UTIMENSAT rump___sysimpl_utimensat -#endif - -#ifndef RUMP_SYS_RENAME_ADJTIME -#define RUMP_SYS_RENAME_ADJTIME rump___sysimpl_adjtime50 -#endif - -#ifndef RUMP_SYS_RENAME_PIPE2 -#define RUMP_SYS_RENAME_PIPE2 rump___sysimpl_pipe2 -#endif - -#ifndef RUMP_SYS_RENAME_GETSOCKOPT -#define RUMP_SYS_RENAME_GETSOCKOPT rump___sysimpl_getsockopt -#endif - -#ifndef RUMP_SYS_RENAME_TRUNCATE -#define RUMP_SYS_RENAME_TRUNCATE rump___sysimpl_truncate -#endif - -#ifndef RUMP_SYS_RENAME_LINK -#define RUMP_SYS_RENAME_LINK rump___sysimpl_link -#endif - -#ifndef RUMP_SYS_RENAME_GETFH -#define RUMP_SYS_RENAME_GETFH rump___sysimpl_getfh30 -#endif - -#ifndef RUMP_SYS_RENAME_RECVMMSG -#define RUMP_SYS_RENAME_RECVMMSG rump___sysimpl_recvmmsg -#endif - -#ifndef RUMP_SYS_RENAME_MKNOD -#define RUMP_SYS_RENAME_MKNOD rump___sysimpl_mknod50 -#endif - -#ifndef RUMP_SYS_RENAME_LREMOVEXATTR -#define RUMP_SYS_RENAME_LREMOVEXATTR rump___sysimpl_lremovexattr -#endif - -#ifndef RUMP_SYS_RENAME_TIMER_DELETE -#define RUMP_SYS_RENAME_TIMER_DELETE rump___sysimpl_timer_delete -#endif - -#ifndef RUMP_SYS_RENAME_CHROOT -#define RUMP_SYS_RENAME_CHROOT rump___sysimpl_chroot -#endif - -#ifndef RUMP_SYS_RENAME_LUTIMES -#define RUMP_SYS_RENAME_LUTIMES rump___sysimpl_lutimes50 -#endif - -#ifndef RUMP_SYS_RENAME___SYSCTL -#define RUMP_SYS_RENAME___SYSCTL rump___sysimpl___sysctl -#endif - -#ifndef RUMP_SYS_RENAME_SYMLINK -#define RUMP_SYS_RENAME_SYMLINK rump___sysimpl_symlink -#endif - #ifndef RUMP_SYS_RENAME_GETXATTR #define RUMP_SYS_RENAME_GETXATTR rump___sysimpl_getxattr #endif @@ -500,284 +764,28 @@ #define RUMP_SYS_RENAME__KSEM_UNLINK rump___sysimpl__ksem_unlink #endif -#ifndef RUMP_SYS_RENAME_LSEEK -#define RUMP_SYS_RENAME_LSEEK rump___sysimpl_lseek +#ifndef RUMP_SYS_RENAME_NFSSVC +#define RUMP_SYS_RENAME_NFSSVC rump___sysimpl_nfssvc #endif -#ifndef RUMP_SYS_RENAME_SETTIMEOFDAY -#define RUMP_SYS_RENAME_SETTIMEOFDAY rump___sysimpl_settimeofday50 -#endif - -#ifndef RUMP_SYS_RENAME_FHSTATVFS1 -#define RUMP_SYS_RENAME_FHSTATVFS1 rump___sysimpl_fhstatvfs140 -#endif - -#ifndef RUMP_SYS_RENAME_GETRLIMIT -#define RUMP_SYS_RENAME_GETRLIMIT rump___sysimpl_getrlimit -#endif - -#ifndef RUMP_SYS_RENAME_FPATHCONF -#define RUMP_SYS_RENAME_FPATHCONF rump___sysimpl_fpathconf -#endif - -#ifndef RUMP_SYS_RENAME_SETEUID -#define RUMP_SYS_RENAME_SETEUID rump___sysimpl_seteuid -#endif - -#ifndef RUMP_SYS_RENAME_ACCEPT -#define RUMP_SYS_RENAME_ACCEPT rump___sysimpl_accept -#endif - -#ifndef RUMP_SYS_RENAME_OPEN -#define RUMP_SYS_RENAME_OPEN rump___sysimpl_open -#endif - -#ifndef RUMP_SYS_RENAME_CHFLAGS -#define RUMP_SYS_RENAME_CHFLAGS rump___sysimpl_chflags -#endif - -#ifndef RUMP_SYS_RENAME_SENDMMSG -#define RUMP_SYS_RENAME_SENDMMSG rump___sysimpl_sendmmsg -#endif - -#ifndef RUMP_SYS_RENAME_FHSTAT -#define RUMP_SYS_RENAME_FHSTAT rump___sysimpl_fhstat50 -#endif - -#ifndef RUMP_SYS_RENAME_FREMOVEXATTR -#define RUMP_SYS_RENAME_FREMOVEXATTR rump___sysimpl_fremovexattr -#endif - -#ifndef RUMP_SYS_RENAME_LISTXATTR -#define RUMP_SYS_RENAME_LISTXATTR rump___sysimpl_listxattr -#endif - -#ifndef RUMP_SYS_RENAME_SHUTDOWN -#define RUMP_SYS_RENAME_SHUTDOWN rump___sysimpl_shutdown -#endif - -#ifndef RUMP_SYS_RENAME_FCNTL -#define RUMP_SYS_RENAME_FCNTL rump___sysimpl_fcntl -#endif - -#ifndef RUMP_SYS_RENAME_CHOWN -#define RUMP_SYS_RENAME_CHOWN rump___sysimpl_chown -#endif - -#ifndef RUMP_SYS_RENAME_POSIX_FADVISE -#define RUMP_SYS_RENAME_POSIX_FADVISE rump___sysimpl_posix_fadvise50 -#endif - -#ifndef RUMP_SYS_RENAME__KSEM_TIMEDWAIT -#define RUMP_SYS_RENAME__KSEM_TIMEDWAIT rump___sysimpl__ksem_timedwait -#endif - -#ifndef RUMP_SYS_RENAME__KSEM_DESTROY -#define RUMP_SYS_RENAME__KSEM_DESTROY rump___sysimpl__ksem_destroy -#endif - -#ifndef RUMP_SYS_RENAME_SETPGID -#define RUMP_SYS_RENAME_SETPGID rump___sysimpl_setpgid -#endif - -#ifndef RUMP_SYS_RENAME_GETPID_WITH_PPID -#define RUMP_SYS_RENAME_GETPID_WITH_PPID rump___sysimpl_getpid -#endif - -#ifndef RUMP_SYS_RENAME_NANOSLEEP -#define RUMP_SYS_RENAME_NANOSLEEP rump___sysimpl_nanosleep50 -#endif - -#ifndef RUMP_SYS_RENAME_FUTIMES -#define RUMP_SYS_RENAME_FUTIMES rump___sysimpl_futimes50 -#endif - -#ifndef RUMP_SYS_RENAME_RENAMEAT -#define RUMP_SYS_RENAME_RENAMEAT rump___sysimpl_renameat -#endif - -#ifndef RUMP_SYS_RENAME_TIMER_GETTIME -#define RUMP_SYS_RENAME_TIMER_GETTIME rump___sysimpl_timer_gettime50 -#endif - -#ifndef RUMP_SYS_RENAME_TIMER_SETTIME -#define RUMP_SYS_RENAME_TIMER_SETTIME rump___sysimpl_timer_settime50 -#endif - -#ifndef RUMP_SYS_RENAME_LSETXATTR -#define RUMP_SYS_RENAME_LSETXATTR rump___sysimpl_lsetxattr -#endif - -#ifndef RUMP_SYS_RENAME_IOCTL -#define RUMP_SYS_RENAME_IOCTL rump___sysimpl_ioctl -#endif - -#ifndef RUMP_SYS_RENAME_ACCESS -#define RUMP_SYS_RENAME_ACCESS rump___sysimpl_access -#endif - -#ifndef RUMP_SYS_RENAME_WRITE -#define RUMP_SYS_RENAME_WRITE rump___sysimpl_write -#endif - -#ifndef RUMP_SYS_RENAME_EXTATTR_GET_FD -#define RUMP_SYS_RENAME_EXTATTR_GET_FD rump___sysimpl_extattr_get_fd -#endif - -#ifndef RUMP_SYS_RENAME_EXTATTR_SET_FD -#define RUMP_SYS_RENAME_EXTATTR_SET_FD rump___sysimpl_extattr_set_fd -#endif - -#ifndef RUMP_SYS_RENAME_UTRACE -#define RUMP_SYS_RENAME_UTRACE rump___sysimpl_utrace -#endif - -#ifndef RUMP_SYS_RENAME_UMASK -#define RUMP_SYS_RENAME_UMASK rump___sysimpl_umask -#endif - -#ifndef RUMP_SYS_RENAME_READ -#define RUMP_SYS_RENAME_READ rump___sysimpl_read -#endif - -#ifndef RUMP_SYS_RENAME_KEVENT -#define RUMP_SYS_RENAME_KEVENT rump___sysimpl_kevent50 -#endif - -#ifndef RUMP_SYS_RENAME_SYNC -#define RUMP_SYS_RENAME_SYNC rump___sysimpl_sync +#ifndef RUMP_SYS_RENAME_GETPPID +#define RUMP_SYS_RENAME_GETPPID rump___sysimpl_getppid #endif #ifndef RUMP_SYS_RENAME_GETTIMEOFDAY #define RUMP_SYS_RENAME_GETTIMEOFDAY rump___sysimpl_gettimeofday50 #endif -#ifndef RUMP_SYS_RENAME_SELECT -#define RUMP_SYS_RENAME_SELECT rump___sysimpl_select50 -#endif - -#ifndef RUMP_SYS_RENAME_FSETXATTR -#define RUMP_SYS_RENAME_FSETXATTR rump___sysimpl_fsetxattr -#endif - -#ifndef RUMP_SYS_RENAME_EXTATTR_DELETE_FILE -#define RUMP_SYS_RENAME_EXTATTR_DELETE_FILE rump___sysimpl_extattr_delete_file -#endif - -#ifndef RUMP_SYS_RENAME_GETEUID -#define RUMP_SYS_RENAME_GETEUID rump___sysimpl_geteuid -#endif - -#ifndef RUMP_SYS_RENAME__KSEM_WAIT -#define RUMP_SYS_RENAME__KSEM_WAIT rump___sysimpl__ksem_wait -#endif - -#ifndef RUMP_SYS_RENAME_SETREUID -#define RUMP_SYS_RENAME_SETREUID rump___sysimpl_setreuid -#endif - -#ifndef RUMP_SYS_RENAME_EXTATTR_LIST_FILE -#define RUMP_SYS_RENAME_EXTATTR_LIST_FILE rump___sysimpl_extattr_list_file -#endif - -#ifndef RUMP_SYS_RENAME_DUP -#define RUMP_SYS_RENAME_DUP rump___sysimpl_dup -#endif - -#ifndef RUMP_SYS_RENAME_GETPPID -#define RUMP_SYS_RENAME_GETPPID rump___sysimpl_getppid -#endif - -#ifndef RUMP_SYS_RENAME_PACCEPT -#define RUMP_SYS_RENAME_PACCEPT rump___sysimpl_paccept +#ifndef RUMP_SYS_RENAME_EXTATTR_LIST_FD +#define RUMP_SYS_RENAME_EXTATTR_LIST_FD rump___sysimpl_extattr_list_fd #endif #ifndef RUMP_SYS_RENAME_EXTATTR_GET_FILE #define RUMP_SYS_RENAME_EXTATTR_GET_FILE rump___sysimpl_extattr_get_file #endif -#ifndef RUMP_SYS_RENAME_EXTATTR_SET_FILE -#define RUMP_SYS_RENAME_EXTATTR_SET_FILE rump___sysimpl_extattr_set_file -#endif - -#ifndef RUMP_SYS_RENAME_GETPGID -#define RUMP_SYS_RENAME_GETPGID rump___sysimpl_getpgid -#endif - -#ifndef RUMP_SYS_RENAME_CHDIR -#define RUMP_SYS_RENAME_CHDIR rump___sysimpl_chdir -#endif - -#ifndef RUMP_SYS_RENAME_STATVFS1 -#define RUMP_SYS_RENAME_STATVFS1 rump___sysimpl_statvfs1 -#endif - -#ifndef RUMP_SYS_RENAME_LINKAT -#define RUMP_SYS_RENAME_LINKAT rump___sysimpl_linkat -#endif - -#ifndef RUMP_SYS_RENAME_SENDTO -#define RUMP_SYS_RENAME_SENDTO rump___sysimpl_sendto -#endif - -#ifndef RUMP_SYS_RENAME___SETLOGIN -#define RUMP_SYS_RENAME___SETLOGIN rump___sysimpl___setlogin -#endif - -#ifndef RUMP_SYS_RENAME_UNMOUNT -#define RUMP_SYS_RENAME_UNMOUNT rump___sysimpl_unmount -#endif - -#ifndef RUMP_SYS_RENAME_STAT -#define RUMP_SYS_RENAME_STAT rump___sysimpl_stat50 -#endif - -#ifndef RUMP_SYS_RENAME_LGETXATTR -#define RUMP_SYS_RENAME_LGETXATTR rump___sysimpl_lgetxattr -#endif - -#ifndef RUMP_SYS_RENAME_MKFIFO -#define RUMP_SYS_RENAME_MKFIFO rump___sysimpl_mkfifo -#endif - -#ifndef RUMP_SYS_RENAME_CHMOD -#define RUMP_SYS_RENAME_CHMOD rump___sysimpl_chmod -#endif - -#ifndef RUMP_SYS_RENAME_FTRUNCATE -#define RUMP_SYS_RENAME_FTRUNCATE rump___sysimpl_ftruncate -#endif - -#ifndef RUMP_SYS_RENAME_READV -#define RUMP_SYS_RENAME_READV rump___sysimpl_readv -#endif - -#ifndef RUMP_SYS_RENAME_LCHFLAGS -#define RUMP_SYS_RENAME_LCHFLAGS rump___sysimpl_lchflags -#endif - -#ifndef RUMP_SYS_RENAME__KSEM_GETVALUE -#define RUMP_SYS_RENAME__KSEM_GETVALUE rump___sysimpl__ksem_getvalue -#endif - -#ifndef RUMP_SYS_RENAME_SETGID -#define RUMP_SYS_RENAME_SETGID rump___sysimpl_setgid -#endif - -#ifndef RUMP_SYS_RENAME_KTRACE -#define RUMP_SYS_RENAME_KTRACE rump___sysimpl_ktrace -#endif - -#ifndef RUMP_SYS_RENAME_LLISTXATTR -#define RUMP_SYS_RENAME_LLISTXATTR rump___sysimpl_llistxattr -#endif - -#ifndef RUMP_SYS_RENAME_LCHOWN -#define RUMP_SYS_RENAME_LCHOWN rump___sysimpl_lchown -#endif - -#ifndef RUMP_SYS_RENAME_UNLINK -#define RUMP_SYS_RENAME_UNLINK rump___sysimpl_unlink +#ifndef RUMP_SYS_RENAME_FUTIMES +#define RUMP_SYS_RENAME_FUTIMES rump___sysimpl_futimes50 #endif struct msghdr; @@ -987,6 +995,8 @@ int rump_sys_recvmmsg(int, struct mmsghdr *, unsigned int, unsigned int, struct timespec *) __RENAME(RUMP_SYS_RENAME_RECVMMSG); int rump_sys_sendmmsg(int, struct mmsghdr *, unsigned int, unsigned int) __RENAME(RUMP_SYS_RENAME_SENDMMSG); int rump_sys_clock_nanosleep(clockid_t, int, const struct timespec *, struct timespec *) __RENAME(RUMP_SYS_RENAME_CLOCK_NANOSLEEP); +int rump_sys_fallocate(int, off_t, off_t) __RENAME(RUMP_SYS_RENAME_FALLOCATE); +int rump_sys_fdiscard(int, off_t, off_t) __RENAME(RUMP_SYS_RENAME_FDISCARD); int rump_sys_pipe(int *); #endif /* _RUMP_RUMP_SYSCALLS_H_ */ diff -r e2d38198dabf -r 448164dc52d1 sys/rump/include/rump/rumpvnode_if.h --- a/sys/rump/include/rump/rumpvnode_if.h Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/rump/include/rump/rumpvnode_if.h Sun Mar 23 23:43:03 2014 -0400 @@ -1,4 +1,4 @@ -/* $NetBSD: rumpvnode_if.h,v 1.16 2014/02/07 15:29:22 hannken Exp $ */ +/* $NetBSD$ */ /* * Warning: DO NOT EDIT! This file is automatically generated! @@ -64,6 +64,8 @@ int RUMP_VOP_SETATTR(struct vnode *, struct vattr *, struct kauth_cred *); int RUMP_VOP_READ(struct vnode *, struct uio *, int, struct kauth_cred *); int RUMP_VOP_WRITE(struct vnode *, struct uio *, int, struct kauth_cred *); +int RUMP_VOP_FALLOCATE(struct vnode *, off_t, off_t); +int RUMP_VOP_FDISCARD(struct vnode *, off_t, off_t); int RUMP_VOP_IOCTL(struct vnode *, u_long, void *, int, struct kauth_cred *); int RUMP_VOP_FCNTL(struct vnode *, u_int, void *, int, struct kauth_cred *); int RUMP_VOP_POLL(struct vnode *, int); diff -r e2d38198dabf -r 448164dc52d1 sys/rump/librump/rumpkern/rump_syscalls.c --- a/sys/rump/librump/rumpkern/rump_syscalls.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/rump/librump/rumpkern/rump_syscalls.c Sun Mar 23 23:43:03 2014 -0400 @@ -1,4 +1,4 @@ -/* $NetBSD: rump_syscalls.c,v 1.98 2014/03/14 00:56:37 pooka Exp $ */ +/* $NetBSD$ */ /* * System call vector and marshalling for rump. @@ -15,7 +15,7 @@ #ifdef __NetBSD__ #include -__KERNEL_RCSID(0, "$NetBSD: rump_syscalls.c,v 1.98 2014/03/14 00:56:37 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD$"); #include #include @@ -5433,6 +5433,62 @@ rsys_define(rumpns_sys_clock_nanosleep); rsys_aliases(clock_nanosleep,rump___sysimpl_clock_nanosleep); +int rump___sysimpl_fallocate(int, off_t, off_t); +int +rump___sysimpl_fallocate(int fd, off_t pos, off_t len) +{ + register_t retval[2]; + int error = 0; + int rv = -1; + struct sys_fallocate_args callarg; + + memset(&callarg, 0, sizeof(callarg)); + SPARG(&callarg, fd) = fd; + SPARG(&callarg, PAD) = 0; + SPARG(&callarg, pos) = pos; + SPARG(&callarg, len) = len; + + error = rsys_syscall(SYS_fallocate, &callarg, sizeof(callarg), retval); + rsys_seterrno(error); + if (error == 0) { + if (sizeof(int) > sizeof(register_t)) + rv = *(int *)retval; + else + rv = *retval; + } + return rv; +} +rsys_define(rumpns_sys_fallocate); +rsys_aliases(fallocate,rump___sysimpl_fallocate); + +int rump___sysimpl_fdiscard(int, off_t, off_t); +int +rump___sysimpl_fdiscard(int fd, off_t pos, off_t len) +{ + register_t retval[2]; + int error = 0; + int rv = -1; + struct sys_fdiscard_args callarg; + + memset(&callarg, 0, sizeof(callarg)); + SPARG(&callarg, fd) = fd; + SPARG(&callarg, PAD) = 0; + SPARG(&callarg, pos) = pos; + SPARG(&callarg, len) = len; + + error = rsys_syscall(SYS_fdiscard, &callarg, sizeof(callarg), retval); + rsys_seterrno(error); + if (error == 0) { + if (sizeof(int) > sizeof(register_t)) + rv = *(int *)retval; + else + rv = *retval; + } + return rv; +} +rsys_define(rumpns_sys_fdiscard); +rsys_aliases(fdiscard,rump___sysimpl_fdiscard); + int rump_sys_pipe(int *); int rump_sys_pipe(int *fd) @@ -6504,10 +6560,10 @@ (sy_call_t *)rumpns_sys_clock_nanosleep },/* 477 = clock_nanosleep */ { 0, 0, SYCALL_NOSYS, (sy_call_t *)rump_enosys }, /* 478 = ___lwp_park60 */ - { 0, 0, SYCALL_NOSYS, - (sy_call_t *)rump_enosys }, /* 479 = filler */ - { 0, 0, SYCALL_NOSYS, - (sy_call_t *)rump_enosys }, /* 480 = filler */ + { ns(struct sys_fallocate_args), 0, + (sy_call_t *)rumpns_sys_fallocate },/* 479 = fallocate */ + { ns(struct sys_fdiscard_args), 0, + (sy_call_t *)rumpns_sys_fdiscard }, /* 480 = fdiscard */ { 0, 0, SYCALL_NOSYS, (sy_call_t *)rump_enosys }, /* 481 = filler */ { 0, 0, SYCALL_NOSYS, diff -r e2d38198dabf -r 448164dc52d1 sys/rump/librump/rumpvfs/devnull.c --- a/sys/rump/librump/rumpvfs/devnull.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/rump/librump/rumpvfs/devnull.c Sun Mar 23 23:43:03 2014 -0400 @@ -56,6 +56,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER | D_MPSAFE }; diff -r e2d38198dabf -r 448164dc52d1 sys/rump/librump/rumpvfs/rumpblk.c --- a/sys/rump/librump/rumpvfs/rumpblk.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/rump/librump/rumpvfs/rumpblk.c Sun Mar 23 23:43:03 2014 -0400 @@ -101,6 +101,7 @@ .d_ioctl = rumpblk_ioctl, .d_dump = nodump, .d_psize = nosize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -111,6 +112,7 @@ .d_ioctl = rumpblk_ioctl, .d_dump = nodump, .d_psize = nosize, + .d_discard = nodiscard, .d_flag = D_DISK }; @@ -125,6 +127,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_DISK }; diff -r e2d38198dabf -r 448164dc52d1 sys/rump/librump/rumpvfs/rumpvnode_if.c --- a/sys/rump/librump/rumpvfs/rumpvnode_if.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/rump/librump/rumpvfs/rumpvnode_if.c Sun Mar 23 23:43:03 2014 -0400 @@ -1,4 +1,4 @@ -/* $NetBSD: rumpvnode_if.c,v 1.15 2014/02/07 15:29:23 hannken Exp $ */ +/* $NetBSD$ */ /* * Warning: DO NOT EDIT! This file is automatically generated! @@ -40,7 +40,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: rumpvnode_if.c,v 1.15 2014/02/07 15:29:23 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD$"); #include #include @@ -208,6 +208,34 @@ } int +RUMP_VOP_FALLOCATE(struct vnode *vp, + off_t pos, + off_t len) +{ + int error; + + rump_schedule(); + error = VOP_FALLOCATE(vp, pos, len); + rump_unschedule(); + + return error; +} + +int +RUMP_VOP_FDISCARD(struct vnode *vp, + off_t pos, + off_t len) +{ + int error; + + rump_schedule(); + error = VOP_FDISCARD(vp, pos, len); + rump_unschedule(); + + return error; +} + +int RUMP_VOP_IOCTL(struct vnode *vp, u_long command, void *data, diff -r e2d38198dabf -r 448164dc52d1 sys/sys/dkio.h --- a/sys/sys/dkio.h Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/sys/dkio.h Sun Mar 23 23:43:03 2014 -0400 @@ -109,15 +109,7 @@ #define DIOCTUR _IOR('d', 128, int) /* test unit ready */ -struct disk_discard_params { - long maxsize; /* in DEV_BSIZE units */ -}; -#define DIOCGDISCARDPARAMS _IOR('d', 129, struct disk_discard_params) - -struct disk_discard_range { - daddr_t bno; - long size; -}; -#define DIOCDISCARD _IOW('d', 130, struct disk_discard_range) +/* 129 was DIOCGDISCARDPARAMS during 6.99 */ +/* 130 was DIOCDISCARD during 6.99 */ #endif /* _SYS_DKIO_H_ */ diff -r e2d38198dabf -r 448164dc52d1 sys/sys/syscall.h --- a/sys/sys/syscall.h Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/sys/syscall.h Sun Mar 23 23:43:03 2014 -0400 @@ -1,4 +1,4 @@ -/* $NetBSD: syscall.h,v 1.268 2014/03/14 00:56:37 pooka Exp $ */ +/* $NetBSD$ */ /* * System call numbers. @@ -1364,6 +1364,12 @@ /* syscall: "___lwp_park60" ret: "int" args: "clockid_t" "int" "const struct timespec *" "lwpid_t" "const void *" "const void *" */ #define SYS____lwp_park60 478 -#define SYS_MAXSYSCALL 479 +/* syscall: "fallocate" ret: "int" args: "int" "int" "off_t" "off_t" */ +#define SYS_fallocate 479 + +/* syscall: "fdiscard" ret: "int" args: "int" "int" "off_t" "off_t" */ +#define SYS_fdiscard 480 + +#define SYS_MAXSYSCALL 481 #define SYS_NSYSENT 512 #endif /* _SYS_SYSCALL_H_ */ diff -r e2d38198dabf -r 448164dc52d1 sys/sys/syscallargs.h --- a/sys/sys/syscallargs.h Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/sys/syscallargs.h Sun Mar 23 23:43:03 2014 -0400 @@ -1,4 +1,4 @@ -/* $NetBSD: syscallargs.h,v 1.251 2014/03/14 00:56:37 pooka Exp $ */ +/* $NetBSD$ */ /* * System call argument lists. @@ -3163,6 +3163,22 @@ check_syscall_args(sys____lwp_park60) #endif /* !RUMP_CLIENT */ +struct sys_fallocate_args { + syscallarg(int) fd; + syscallarg(int) PAD; + syscallarg(off_t) pos; + syscallarg(off_t) len; +}; +check_syscall_args(sys_fallocate) + +struct sys_fdiscard_args { + syscallarg(int) fd; + syscallarg(int) PAD; + syscallarg(off_t) pos; + syscallarg(off_t) len; +}; +check_syscall_args(sys_fdiscard) + /* * System call prototypes. */ @@ -4060,5 +4076,9 @@ int sys____lwp_park60(struct lwp *, const struct sys____lwp_park60_args *, register_t *); +int sys_fallocate(struct lwp *, const struct sys_fallocate_args *, register_t *); + +int sys_fdiscard(struct lwp *, const struct sys_fdiscard_args *, register_t *); + #endif /* !RUMP_CLIENT */ #endif /* _SYS_SYSCALLARGS_H_ */ diff -r e2d38198dabf -r 448164dc52d1 sys/sys/vnode_if.h --- a/sys/sys/vnode_if.h Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/sys/vnode_if.h Sun Mar 23 23:43:03 2014 -0400 @@ -1,4 +1,4 @@ -/* $NetBSD: vnode_if.h,v 1.87 2014/02/07 15:29:23 hannken Exp $ */ +/* $NetBSD$ */ /* * Warning: DO NOT EDIT! This file is automatically generated! @@ -165,7 +165,27 @@ extern const struct vnodeop_desc vop_write_desc; int VOP_WRITE(struct vnode *, struct uio *, int, kauth_cred_t); -#define VOP_IOCTL_DESCOFFSET 12 +#define VOP_FALLOCATE_DESCOFFSET 12 +struct vop_fallocate_args { + const struct vnodeop_desc *a_desc; + struct vnode *a_vp; + off_t a_pos; + off_t a_len; +}; +extern const struct vnodeop_desc vop_fallocate_desc; +int VOP_FALLOCATE(struct vnode *, off_t, off_t); + +#define VOP_FDISCARD_DESCOFFSET 13 +struct vop_fdiscard_args { + const struct vnodeop_desc *a_desc; + struct vnode *a_vp; + off_t a_pos; + off_t a_len; +}; +extern const struct vnodeop_desc vop_fdiscard_desc; +int VOP_FDISCARD(struct vnode *, off_t, off_t); + +#define VOP_IOCTL_DESCOFFSET 14 struct vop_ioctl_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -177,7 +197,7 @@ extern const struct vnodeop_desc vop_ioctl_desc; int VOP_IOCTL(struct vnode *, u_long, void *, int, kauth_cred_t); -#define VOP_FCNTL_DESCOFFSET 13 +#define VOP_FCNTL_DESCOFFSET 15 struct vop_fcntl_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -189,7 +209,7 @@ extern const struct vnodeop_desc vop_fcntl_desc; int VOP_FCNTL(struct vnode *, u_int, void *, int, kauth_cred_t); -#define VOP_POLL_DESCOFFSET 14 +#define VOP_POLL_DESCOFFSET 16 struct vop_poll_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -198,7 +218,7 @@ extern const struct vnodeop_desc vop_poll_desc; int VOP_POLL(struct vnode *, int); -#define VOP_KQFILTER_DESCOFFSET 15 +#define VOP_KQFILTER_DESCOFFSET 17 struct vop_kqfilter_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -207,7 +227,7 @@ extern const struct vnodeop_desc vop_kqfilter_desc; int VOP_KQFILTER(struct vnode *, struct knote *); -#define VOP_REVOKE_DESCOFFSET 16 +#define VOP_REVOKE_DESCOFFSET 18 struct vop_revoke_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -216,7 +236,7 @@ extern const struct vnodeop_desc vop_revoke_desc; int VOP_REVOKE(struct vnode *, int); -#define VOP_MMAP_DESCOFFSET 17 +#define VOP_MMAP_DESCOFFSET 19 struct vop_mmap_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -226,7 +246,7 @@ extern const struct vnodeop_desc vop_mmap_desc; int VOP_MMAP(struct vnode *, vm_prot_t, kauth_cred_t); -#define VOP_FSYNC_DESCOFFSET 18 +#define VOP_FSYNC_DESCOFFSET 20 struct vop_fsync_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -238,7 +258,7 @@ extern const struct vnodeop_desc vop_fsync_desc; int VOP_FSYNC(struct vnode *, kauth_cred_t, int, off_t, off_t); -#define VOP_SEEK_DESCOFFSET 19 +#define VOP_SEEK_DESCOFFSET 21 struct vop_seek_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -249,7 +269,7 @@ extern const struct vnodeop_desc vop_seek_desc; int VOP_SEEK(struct vnode *, off_t, off_t, kauth_cred_t); -#define VOP_REMOVE_DESCOFFSET 20 +#define VOP_REMOVE_DESCOFFSET 22 struct vop_remove_args { const struct vnodeop_desc *a_desc; struct vnode *a_dvp; @@ -259,7 +279,7 @@ extern const struct vnodeop_desc vop_remove_desc; int VOP_REMOVE(struct vnode *, struct vnode *, struct componentname *); -#define VOP_LINK_DESCOFFSET 21 +#define VOP_LINK_DESCOFFSET 23 struct vop_link_args { const struct vnodeop_desc *a_desc; struct vnode *a_dvp; @@ -269,7 +289,7 @@ extern const struct vnodeop_desc vop_link_desc; int VOP_LINK(struct vnode *, struct vnode *, struct componentname *); -#define VOP_RENAME_DESCOFFSET 22 +#define VOP_RENAME_DESCOFFSET 24 struct vop_rename_args { const struct vnodeop_desc *a_desc; struct vnode *a_fdvp; @@ -283,7 +303,7 @@ int VOP_RENAME(struct vnode *, struct vnode *, struct componentname *, struct vnode *, struct vnode *, struct componentname *); -#define VOP_MKDIR_DESCOFFSET 23 +#define VOP_MKDIR_DESCOFFSET 25 struct vop_mkdir_v3_args { const struct vnodeop_desc *a_desc; struct vnode *a_dvp; @@ -295,7 +315,7 @@ int VOP_MKDIR(struct vnode *, struct vnode **, struct componentname *, struct vattr *); -#define VOP_RMDIR_DESCOFFSET 24 +#define VOP_RMDIR_DESCOFFSET 26 struct vop_rmdir_args { const struct vnodeop_desc *a_desc; struct vnode *a_dvp; @@ -305,7 +325,7 @@ extern const struct vnodeop_desc vop_rmdir_desc; int VOP_RMDIR(struct vnode *, struct vnode *, struct componentname *); -#define VOP_SYMLINK_DESCOFFSET 25 +#define VOP_SYMLINK_DESCOFFSET 27 struct vop_symlink_v3_args { const struct vnodeop_desc *a_desc; struct vnode *a_dvp; @@ -318,7 +338,7 @@ int VOP_SYMLINK(struct vnode *, struct vnode **, struct componentname *, struct vattr *, char *); -#define VOP_READDIR_DESCOFFSET 26 +#define VOP_READDIR_DESCOFFSET 28 struct vop_readdir_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -332,7 +352,7 @@ int VOP_READDIR(struct vnode *, struct uio *, kauth_cred_t, int *, off_t **, int *); -#define VOP_READLINK_DESCOFFSET 27 +#define VOP_READLINK_DESCOFFSET 29 struct vop_readlink_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -342,7 +362,7 @@ extern const struct vnodeop_desc vop_readlink_desc; int VOP_READLINK(struct vnode *, struct uio *, kauth_cred_t); -#define VOP_ABORTOP_DESCOFFSET 28 +#define VOP_ABORTOP_DESCOFFSET 30 struct vop_abortop_args { const struct vnodeop_desc *a_desc; struct vnode *a_dvp; @@ -351,7 +371,7 @@ extern const struct vnodeop_desc vop_abortop_desc; int VOP_ABORTOP(struct vnode *, struct componentname *); -#define VOP_INACTIVE_DESCOFFSET 29 +#define VOP_INACTIVE_DESCOFFSET 31 struct vop_inactive_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -360,7 +380,7 @@ extern const struct vnodeop_desc vop_inactive_desc; int VOP_INACTIVE(struct vnode *, bool *); -#define VOP_RECLAIM_DESCOFFSET 30 +#define VOP_RECLAIM_DESCOFFSET 32 struct vop_reclaim_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -368,7 +388,7 @@ extern const struct vnodeop_desc vop_reclaim_desc; int VOP_RECLAIM(struct vnode *); -#define VOP_LOCK_DESCOFFSET 31 +#define VOP_LOCK_DESCOFFSET 33 struct vop_lock_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -377,7 +397,7 @@ extern const struct vnodeop_desc vop_lock_desc; int VOP_LOCK(struct vnode *, int); -#define VOP_UNLOCK_DESCOFFSET 32 +#define VOP_UNLOCK_DESCOFFSET 34 struct vop_unlock_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -385,7 +405,7 @@ extern const struct vnodeop_desc vop_unlock_desc; int VOP_UNLOCK(struct vnode *); -#define VOP_BMAP_DESCOFFSET 33 +#define VOP_BMAP_DESCOFFSET 35 struct vop_bmap_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -397,7 +417,7 @@ extern const struct vnodeop_desc vop_bmap_desc; int VOP_BMAP(struct vnode *, daddr_t, struct vnode **, daddr_t *, int *); -#define VOP_STRATEGY_DESCOFFSET 34 +#define VOP_STRATEGY_DESCOFFSET 36 struct vop_strategy_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -406,7 +426,7 @@ extern const struct vnodeop_desc vop_strategy_desc; int VOP_STRATEGY(struct vnode *, struct buf *); -#define VOP_PRINT_DESCOFFSET 35 +#define VOP_PRINT_DESCOFFSET 37 struct vop_print_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -414,7 +434,7 @@ extern const struct vnodeop_desc vop_print_desc; int VOP_PRINT(struct vnode *); -#define VOP_ISLOCKED_DESCOFFSET 36 +#define VOP_ISLOCKED_DESCOFFSET 38 struct vop_islocked_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -422,7 +442,7 @@ extern const struct vnodeop_desc vop_islocked_desc; int VOP_ISLOCKED(struct vnode *); -#define VOP_PATHCONF_DESCOFFSET 37 +#define VOP_PATHCONF_DESCOFFSET 39 struct vop_pathconf_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -432,7 +452,7 @@ extern const struct vnodeop_desc vop_pathconf_desc; int VOP_PATHCONF(struct vnode *, int, register_t *); -#define VOP_ADVLOCK_DESCOFFSET 38 +#define VOP_ADVLOCK_DESCOFFSET 40 struct vop_advlock_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -444,7 +464,7 @@ extern const struct vnodeop_desc vop_advlock_desc; int VOP_ADVLOCK(struct vnode *, void *, int, struct flock *, int); -#define VOP_WHITEOUT_DESCOFFSET 39 +#define VOP_WHITEOUT_DESCOFFSET 41 struct vop_whiteout_args { const struct vnodeop_desc *a_desc; struct vnode *a_dvp; @@ -454,7 +474,7 @@ extern const struct vnodeop_desc vop_whiteout_desc; int VOP_WHITEOUT(struct vnode *, struct componentname *, int); -#define VOP_GETPAGES_DESCOFFSET 40 +#define VOP_GETPAGES_DESCOFFSET 42 struct vop_getpages_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -470,7 +490,7 @@ int VOP_GETPAGES(struct vnode *, voff_t, struct vm_page **, int *, int, vm_prot_t, int, int); -#define VOP_PUTPAGES_DESCOFFSET 41 +#define VOP_PUTPAGES_DESCOFFSET 43 struct vop_putpages_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -481,7 +501,7 @@ extern const struct vnodeop_desc vop_putpages_desc; int VOP_PUTPAGES(struct vnode *, voff_t, voff_t, int); -#define VOP_CLOSEEXTATTR_DESCOFFSET 42 +#define VOP_CLOSEEXTATTR_DESCOFFSET 44 struct vop_closeextattr_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -491,7 +511,7 @@ extern const struct vnodeop_desc vop_closeextattr_desc; int VOP_CLOSEEXTATTR(struct vnode *, int, kauth_cred_t); -#define VOP_GETEXTATTR_DESCOFFSET 43 +#define VOP_GETEXTATTR_DESCOFFSET 45 struct vop_getextattr_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -505,7 +525,7 @@ int VOP_GETEXTATTR(struct vnode *, int, const char *, struct uio *, size_t *, kauth_cred_t); -#define VOP_LISTEXTATTR_DESCOFFSET 44 +#define VOP_LISTEXTATTR_DESCOFFSET 46 struct vop_listextattr_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -519,7 +539,7 @@ int VOP_LISTEXTATTR(struct vnode *, int, struct uio *, size_t *, int, kauth_cred_t); -#define VOP_OPENEXTATTR_DESCOFFSET 45 +#define VOP_OPENEXTATTR_DESCOFFSET 47 struct vop_openextattr_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -528,7 +548,7 @@ extern const struct vnodeop_desc vop_openextattr_desc; int VOP_OPENEXTATTR(struct vnode *, kauth_cred_t); -#define VOP_DELETEEXTATTR_DESCOFFSET 46 +#define VOP_DELETEEXTATTR_DESCOFFSET 48 struct vop_deleteextattr_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -539,7 +559,7 @@ extern const struct vnodeop_desc vop_deleteextattr_desc; int VOP_DELETEEXTATTR(struct vnode *, int, const char *, kauth_cred_t); -#define VOP_SETEXTATTR_DESCOFFSET 47 +#define VOP_SETEXTATTR_DESCOFFSET 49 struct vop_setextattr_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -552,6 +572,6 @@ int VOP_SETEXTATTR(struct vnode *, int, const char *, struct uio *, kauth_cred_t); -#define VNODE_OPS_COUNT 48 +#define VNODE_OPS_COUNT 50 #endif /* !_SYS_VNODE_IF_H_ */ diff -r e2d38198dabf -r 448164dc52d1 sys/ufs/chfs/chfs_vnops.c --- a/sys/ufs/chfs/chfs_vnops.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/ufs/chfs/chfs_vnops.c Sun Mar 23 23:43:03 2014 -0400 @@ -1616,6 +1616,8 @@ { &vop_setattr_desc, chfs_setattr }, { &vop_read_desc, chfs_read }, { &vop_write_desc, chfs_write }, + { &vop_fallocate_desc, genfs_eopnotsupp }, + { &vop_fdiscard_desc, genfs_eopnotsupp }, { &vop_ioctl_desc, genfs_enoioctl }, { &vop_fcntl_desc, genfs_fcntl }, { &vop_poll_desc, genfs_poll }, @@ -1672,6 +1674,8 @@ { &vop_setattr_desc, chfs_setattr }, { &vop_read_desc, chfs_read }, { &vop_write_desc, chfs_write }, + { &vop_fallocate_desc, spec_fallocate }, + { &vop_fdiscard_desc, spec_fdiscard }, { &vop_ioctl_desc, spec_ioctl }, { &vop_fcntl_desc, genfs_fcntl }, { &vop_poll_desc, spec_poll }, @@ -1726,6 +1730,8 @@ { &vop_setattr_desc, chfs_setattr }, { &vop_read_desc, ufsfifo_read }, { &vop_write_desc, ufsfifo_write }, + { &vop_fallocate_desc, vn_fifo_bypass }, + { &vop_fdiscard_desc, vn_fifo_bypass }, { &vop_ioctl_desc, vn_fifo_bypass }, { &vop_fcntl_desc, genfs_fcntl }, { &vop_poll_desc, vn_fifo_bypass }, diff -r e2d38198dabf -r 448164dc52d1 sys/ufs/ext2fs/ext2fs_vnops.c --- a/sys/ufs/ext2fs/ext2fs_vnops.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/ufs/ext2fs/ext2fs_vnops.c Sun Mar 23 23:43:03 2014 -0400 @@ -1144,6 +1144,8 @@ { &vop_setattr_desc, ext2fs_setattr }, /* setattr */ { &vop_read_desc, ext2fs_read }, /* read */ { &vop_write_desc, ext2fs_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_ioctl_desc, ufs_ioctl }, /* ioctl */ { &vop_fcntl_desc, ufs_fcntl }, /* fcntl */ { &vop_poll_desc, ufs_poll }, /* poll */ @@ -1192,6 +1194,8 @@ { &vop_setattr_desc, ext2fs_setattr }, /* setattr */ { &vop_read_desc, ufsspec_read }, /* read */ { &vop_write_desc, ufsspec_write }, /* write */ + { &vop_fallocate_desc, spec_fallocate }, /* fallocate */ + { &vop_fdiscard_desc, spec_fdiscard }, /* fdiscard */ { &vop_ioctl_desc, spec_ioctl }, /* ioctl */ { &vop_fcntl_desc, ufs_fcntl }, /* fcntl */ { &vop_poll_desc, spec_poll }, /* poll */ @@ -1240,6 +1244,8 @@ { &vop_setattr_desc, ext2fs_setattr }, /* setattr */ { &vop_read_desc, ufsfifo_read }, /* read */ { &vop_write_desc, ufsfifo_write }, /* write */ + { &vop_fallocate_desc, vn_fifo_bypass }, /* fallocate */ + { &vop_fdiscard_desc, vn_fifo_bypass }, /* fdiscard */ { &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */ { &vop_fcntl_desc, ufs_fcntl }, /* fcntl */ { &vop_poll_desc, vn_fifo_bypass }, /* poll */ diff -r e2d38198dabf -r 448164dc52d1 sys/ufs/ffs/ffs_alloc.c --- a/sys/ufs/ffs/ffs_alloc.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/ufs/ffs/ffs_alloc.c Sun Mar 23 23:43:03 2014 -0400 @@ -1621,17 +1621,22 @@ struct discardopdata *td = (void *)wk; struct discarddata *ts = arg; struct fs *fs = ts->fs; - struct disk_discard_range ta; + off_t start, len; #ifdef TRIMDEBUG int error; #endif - ta.bno = FFS_FSBTODB(fs, td->bno); - ta.size = td->size >> DEV_BSHIFT; +/* like FSBTODB but emits bytes; XXX move to fs.h */ +#ifndef FFS_FSBTOBYTES +#define FFS_FSBTOBYTES(fs, b) ((b) << (fs)->fs_fshift) +#endif + + start = FFS_FSBTOBYTES(fs, td->bno); + len = td->size; #ifdef TRIMDEBUG error = #endif - VOP_IOCTL(td->devvp, DIOCDISCARD, &ta, FWRITE, FSCRED); + VOP_FDISCARD(td->devvp, start, len); #ifdef TRIMDEBUG printf("trim(%" PRId64 ",%ld):%d\n", td->bno, td->size, error); #endif @@ -1648,20 +1653,9 @@ void * ffs_discard_init(struct vnode *devvp, struct fs *fs) { - struct disk_discard_params tp; struct discarddata *ts; int error; - error = VOP_IOCTL(devvp, DIOCGDISCARDPARAMS, &tp, FREAD, FSCRED); - if (error) { - printf("DIOCGDISCARDPARAMS: %d\n", error); - return NULL; - } - if (tp.maxsize * DEV_BSIZE < fs->fs_bsize) { - printf("tp.maxsize=%ld, fs_bsize=%d\n", tp.maxsize, fs->fs_bsize); - return NULL; - } - ts = kmem_zalloc(sizeof (*ts), KM_SLEEP); error = workqueue_create(&ts->wq, "trimwq", ffs_discardcb, ts, 0, 0, 0); @@ -1672,7 +1666,7 @@ mutex_init(&ts->entrylk, MUTEX_DEFAULT, IPL_NONE); mutex_init(&ts->wqlk, MUTEX_DEFAULT, IPL_NONE); cv_init(&ts->wqcv, "trimwqcv"); - ts->maxsize = max(tp.maxsize * DEV_BSIZE, 100*1024); /* XXX */ + ts->maxsize = 100*1024; /* XXX */ ts->fs = fs; return ts; } diff -r e2d38198dabf -r 448164dc52d1 sys/ufs/ffs/ffs_vnops.c --- a/sys/ufs/ffs/ffs_vnops.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/ufs/ffs/ffs_vnops.c Sun Mar 23 23:43:03 2014 -0400 @@ -115,6 +115,8 @@ { &vop_setattr_desc, ufs_setattr }, /* setattr */ { &vop_read_desc, ffs_read }, /* read */ { &vop_write_desc, ffs_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_ioctl_desc, ufs_ioctl }, /* ioctl */ { &vop_fcntl_desc, ufs_fcntl }, /* fcntl */ { &vop_poll_desc, ufs_poll }, /* poll */ @@ -169,6 +171,8 @@ { &vop_setattr_desc, ufs_setattr }, /* setattr */ { &vop_read_desc, ufsspec_read }, /* read */ { &vop_write_desc, ufsspec_write }, /* write */ + { &vop_fallocate_desc, spec_fallocate }, /* fallocate */ + { &vop_fdiscard_desc, spec_fdiscard }, /* fdiscard */ { &vop_ioctl_desc, spec_ioctl }, /* ioctl */ { &vop_fcntl_desc, ufs_fcntl }, /* fcntl */ { &vop_poll_desc, spec_poll }, /* poll */ @@ -223,6 +227,8 @@ { &vop_setattr_desc, ufs_setattr }, /* setattr */ { &vop_read_desc, ufsfifo_read }, /* read */ { &vop_write_desc, ufsfifo_write }, /* write */ + { &vop_fallocate_desc, vn_fifo_bypass }, /* fallocate */ + { &vop_fdiscard_desc, vn_fifo_bypass }, /* fdiscard */ { &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */ { &vop_fcntl_desc, ufs_fcntl }, /* fcntl */ { &vop_poll_desc, vn_fifo_bypass }, /* poll */ diff -r e2d38198dabf -r 448164dc52d1 sys/ufs/lfs/lfs_vnops.c --- a/sys/ufs/lfs/lfs_vnops.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/ufs/lfs/lfs_vnops.c Sun Mar 23 23:43:03 2014 -0400 @@ -127,6 +127,8 @@ { &vop_setattr_desc, lfs_setattr }, /* setattr */ { &vop_read_desc, lfs_read }, /* read */ { &vop_write_desc, lfs_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_ioctl_desc, ulfs_ioctl }, /* ioctl */ { &vop_fcntl_desc, lfs_fcntl }, /* fcntl */ { &vop_poll_desc, ulfs_poll }, /* poll */ @@ -181,6 +183,8 @@ { &vop_setattr_desc, lfs_setattr }, /* setattr */ { &vop_read_desc, ulfsspec_read }, /* read */ { &vop_write_desc, ulfsspec_write }, /* write */ + { &vop_fallocate_desc, spec_fallocate }, /* fallocate */ + { &vop_fdiscard_desc, spec_fdiscard }, /* fdiscard */ { &vop_ioctl_desc, spec_ioctl }, /* ioctl */ { &vop_fcntl_desc, ulfs_fcntl }, /* fcntl */ { &vop_poll_desc, spec_poll }, /* poll */ @@ -235,6 +239,8 @@ { &vop_setattr_desc, lfs_setattr }, /* setattr */ { &vop_read_desc, ulfsfifo_read }, /* read */ { &vop_write_desc, ulfsfifo_write }, /* write */ + { &vop_fallocate_desc, vn_fifo_bypass }, /* fallocate */ + { &vop_fdiscard_desc, vn_fifo_bypass }, /* fdiscard */ { &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */ { &vop_fcntl_desc, ulfs_fcntl }, /* fcntl */ { &vop_poll_desc, vn_fifo_bypass }, /* poll */ diff -r e2d38198dabf -r 448164dc52d1 sys/ufs/mfs/mfs_vnops.c --- a/sys/ufs/mfs/mfs_vnops.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/ufs/mfs/mfs_vnops.c Sun Mar 23 23:43:03 2014 -0400 @@ -68,6 +68,8 @@ { &vop_setattr_desc, mfs_setattr }, /* setattr */ { &vop_read_desc, mfs_read }, /* read */ { &vop_write_desc, mfs_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_ioctl_desc, mfs_ioctl }, /* ioctl */ { &vop_poll_desc, mfs_poll }, /* poll */ { &vop_revoke_desc, mfs_revoke }, /* revoke */ diff -r e2d38198dabf -r 448164dc52d1 sys/uvm/uvm_swap.c --- a/sys/uvm/uvm_swap.c Sun Mar 23 14:41:48 2014 -0400 +++ b/sys/uvm/uvm_swap.c Sun Mar 23 23:43:03 2014 -0400 @@ -1283,6 +1283,7 @@ .d_ioctl = noioctl, .d_dump = nodump, .d_psize = nosize, + .d_discard = nodiscard, .d_flag = D_OTHER }; @@ -1297,6 +1298,7 @@ .d_poll = nopoll, .d_mmap = nommap, .d_kqfilter = nokqfilter, + .d_discard = nodiscard, .d_flag = D_OTHER, };