svn commit: r274350 - in projects/ifnet: . cddl/contrib/opensolaris/cmd/zdb cddl/contrib/opensolaris/cmd/zfs cddl/contrib/opensolaris/cmd/zpool cddl/contrib/opensolaris/cmd/zstreamdump cddl/contrib...
Gleb Smirnoff
glebius at FreeBSD.org
Mon Nov 10 18:48:10 UTC 2014
Author: glebius
Date: Mon Nov 10 18:47:59 2014
New Revision: 274350
URL: https://svnweb.freebsd.org/changeset/base/274350
Log:
Merge head r256150 through r274349.
Deleted:
projects/ifnet/etc/rc.d/faith
projects/ifnet/share/man/man4/faith.4
projects/ifnet/sys/modules/if_faith/
projects/ifnet/sys/net/if_faith.c
projects/ifnet/usr.sbin/faithd/
Modified:
projects/ifnet/ObsoleteFiles.inc
projects/ifnet/UPDATING
projects/ifnet/cddl/contrib/opensolaris/cmd/zdb/zdb.c
projects/ifnet/cddl/contrib/opensolaris/cmd/zfs/zfs.8
projects/ifnet/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c
projects/ifnet/cddl/contrib/opensolaris/cmd/zpool/zpool-features.7
projects/ifnet/cddl/contrib/opensolaris/cmd/zstreamdump/zstreamdump.c
projects/ifnet/cddl/contrib/opensolaris/cmd/ztest/ztest.c
projects/ifnet/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h
projects/ifnet/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c
projects/ifnet/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c
projects/ifnet/cddl/contrib/opensolaris/lib/libzfs_core/common/libzfs_core.c
projects/ifnet/cddl/contrib/opensolaris/lib/libzfs_core/common/libzfs_core.h
projects/ifnet/etc/defaults/rc.conf
projects/ifnet/etc/network.subr
projects/ifnet/etc/rc.d/Makefile
projects/ifnet/etc/rc.d/NETWORKING
projects/ifnet/etc/rc.d/bridge
projects/ifnet/etc/rc.d/defaultroute
projects/ifnet/etc/rc.d/routing
projects/ifnet/lib/libc/net/getaddrinfo.c
projects/ifnet/lib/libc/net/getnameinfo.c
projects/ifnet/release/picobsd/bridge/PICOBSD
projects/ifnet/release/picobsd/qemu/PICOBSD
projects/ifnet/sbin/camcontrol/camcontrol.c
projects/ifnet/sbin/gbde/gbde.8
projects/ifnet/sbin/gbde/gbde.c
projects/ifnet/share/man/man4/Makefile
projects/ifnet/share/man/man4/inet6.4
projects/ifnet/share/man/man4/ip6.4
projects/ifnet/share/man/man5/rc.conf.5
projects/ifnet/share/man/man7/hier.7
projects/ifnet/sys/amd64/amd64/genassym.c
projects/ifnet/sys/amd64/conf/GENERIC
projects/ifnet/sys/arm/conf/ATMEL
projects/ifnet/sys/arm/conf/DOCKSTAR
projects/ifnet/sys/arm/conf/DREAMPLUG-1001
projects/ifnet/sys/arm/conf/EFIKA_MX
projects/ifnet/sys/arm/conf/ETHERNUT5
projects/ifnet/sys/arm/conf/IMX53
projects/ifnet/sys/arm/conf/IMX6
projects/ifnet/sys/arm/conf/SAM9260EK
projects/ifnet/sys/boot/forth/loader.conf
projects/ifnet/sys/boot/zfs/zfsimpl.c
projects/ifnet/sys/cam/ctl/ctl.c
projects/ifnet/sys/cam/ctl/ctl_cmd_table.c
projects/ifnet/sys/cddl/boot/zfs/zfsimpl.h
projects/ifnet/sys/cddl/contrib/opensolaris/common/zfs/zfeature_common.c
projects/ifnet/sys/cddl/contrib/opensolaris/common/zfs/zfeature_common.h
projects/ifnet/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.c
projects/ifnet/sys/cddl/contrib/opensolaris/common/zfs/zpool_prop.c
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bpobj.c
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bptree.c
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deadlist.c
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_destroy.c
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sa.c
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_history.c
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_send.h
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap_impl.h
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zil.h
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zil_impl.h
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_raidz.c
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_log.c
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c
projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h
projects/ifnet/sys/conf/NOTES
projects/ifnet/sys/conf/files
projects/ifnet/sys/crypto/rijndael/rijndael-api-fst.c
projects/ifnet/sys/crypto/rijndael/rijndael-api-fst.h
projects/ifnet/sys/dev/random/fortuna.c
projects/ifnet/sys/dev/random/hash.c
projects/ifnet/sys/dev/random/hash.h
projects/ifnet/sys/dev/virtio/network/if_vtnet.c
projects/ifnet/sys/geom/bde/g_bde.c
projects/ifnet/sys/geom/bde/g_bde.h
projects/ifnet/sys/i386/conf/GENERIC
projects/ifnet/sys/i386/conf/XBOX
projects/ifnet/sys/i386/conf/XEN
projects/ifnet/sys/kern/kern_clock.c
projects/ifnet/sys/kern/subr_prof.c
projects/ifnet/sys/mips/conf/GXEMUL
projects/ifnet/sys/mips/conf/GXEMUL32
projects/ifnet/sys/mips/conf/OCTEON1
projects/ifnet/sys/mips/rmi/rootfs_list.txt
projects/ifnet/sys/modules/Makefile
projects/ifnet/sys/net/if_types.h
projects/ifnet/sys/net/netmap_user.h
projects/ifnet/sys/netinet/in.h
projects/ifnet/sys/netinet/in_pcb.c
projects/ifnet/sys/netinet/in_pcb.h
projects/ifnet/sys/netinet/ip_icmp.c
projects/ifnet/sys/netinet/ip_input.c
projects/ifnet/sys/netinet/ip_output.c
projects/ifnet/sys/netinet6/icmp6.c
projects/ifnet/sys/netinet6/in6.c
projects/ifnet/sys/netinet6/in6.h
projects/ifnet/sys/netinet6/in6_ifattach.c
projects/ifnet/sys/netinet6/in6_pcb.c
projects/ifnet/sys/netinet6/in6_proto.c
projects/ifnet/sys/netinet6/in6_src.c
projects/ifnet/sys/netinet6/ip6_output.c
projects/ifnet/sys/netinet6/ip6_var.h
projects/ifnet/sys/netinet6/nd6.c
projects/ifnet/sys/netinet6/nd6.h
projects/ifnet/sys/netinet6/nd6_nbr.c
projects/ifnet/sys/netinet6/raw_ip6.c
projects/ifnet/sys/netinet6/scope6.c
projects/ifnet/sys/netinet6/scope6_var.h
projects/ifnet/sys/netinet6/sctp6_usrreq.c
projects/ifnet/sys/netinet6/udp6_usrreq.c
projects/ifnet/sys/netpfil/ipfw/ip_fw_private.h
projects/ifnet/sys/netpfil/pf/pf.c
projects/ifnet/sys/pc98/conf/GENERIC
projects/ifnet/sys/powerpc/conf/GENERIC
projects/ifnet/sys/powerpc/conf/GENERIC64
projects/ifnet/sys/powerpc/conf/WII
projects/ifnet/sys/sparc64/conf/GENERIC
projects/ifnet/tools/build/mk/OptionalObsoleteFiles.inc
projects/ifnet/tools/tools/nanobsd/pcengines/ALIX_DSK
projects/ifnet/tools/tools/nanobsd/pcengines/ALIX_NFS
projects/ifnet/tools/tools/sysbuild/sysbuild.sh
projects/ifnet/tools/tools/sysdoc/tunables.mdoc
projects/ifnet/tools/tools/tinybsd/conf/default/TINYBSD
projects/ifnet/tools/tools/tinybsd/conf/vpn/TINYBSD
projects/ifnet/tools/tools/tinybsd/conf/wrap/TINYBSD
projects/ifnet/usr.sbin/Makefile
projects/ifnet/usr.sbin/bhyve/block_if.c
projects/ifnet/usr.sbin/bsdconfig/networking/share/device.subr
projects/ifnet/usr.sbin/ctld/chap.c
projects/ifnet/usr.sbin/inetd/inetd.c
projects/ifnet/usr.sbin/iscsid/chap.c
Directory Properties:
projects/ifnet/ (props changed)
projects/ifnet/cddl/ (props changed)
projects/ifnet/cddl/contrib/opensolaris/ (props changed)
projects/ifnet/cddl/contrib/opensolaris/cmd/zfs/ (props changed)
projects/ifnet/cddl/contrib/opensolaris/lib/libzfs/ (props changed)
projects/ifnet/etc/ (props changed)
projects/ifnet/lib/libc/ (props changed)
projects/ifnet/sbin/ (props changed)
projects/ifnet/share/ (props changed)
projects/ifnet/share/man/man4/ (props changed)
projects/ifnet/sys/ (props changed)
projects/ifnet/sys/boot/ (props changed)
projects/ifnet/sys/cddl/contrib/opensolaris/ (props changed)
projects/ifnet/sys/conf/ (props changed)
projects/ifnet/usr.sbin/bhyve/ (props changed)
Modified: projects/ifnet/ObsoleteFiles.inc
==============================================================================
--- projects/ifnet/ObsoleteFiles.inc Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/ObsoleteFiles.inc Mon Nov 10 18:47:59 2014 (r274350)
@@ -38,6 +38,12 @@
# xargs -n1 | sort | uniq -d;
# done
+# 20141109: faith/faithd removal
+OLD_FILES+=etc/rc.d/faith
+OLD_FILES+=usr/share/man/man4/faith.4.gz
+OLD_FILES+=usr/share/man/man4/if_faith.4.gz
+OLD_FILES+=usr/sbin/faithd
+OLD_FILES+=usr/share/man/man8/faithd.8.gz
# 20141102: postrandom obsoleted by new /dev/random code
OLD_FILES+=etc/rc.d/postrandom
# 20141031: initrandom obsoleted by new /dev/random code
Modified: projects/ifnet/UPDATING
==============================================================================
--- projects/ifnet/UPDATING Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/UPDATING Mon Nov 10 18:47:59 2014 (r274350)
@@ -31,6 +31,10 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 11
disable the most expensive debugging functionality run
"ln -s 'abort:false,junk:false' /etc/malloc.conf".)
+20141109:
+ faith(4) and faithd(8) has been removed from base system. It
+ has been obsolete for a very long time.
+
20141104:
vt(4), the new console driver, is enabled by default. It brings
support for Unicode and double-width characters, as well as
@@ -833,8 +837,8 @@ COMMON ITEMS:
2.) update the ZFS boot block on your boot drive
The following example updates the ZFS boot block on the first
- partition (freebsd-boot) of a GPT partitioned drive ad0:
- "gpart bootcode -p /boot/gptzfsboot -i 1 ad0"
+ partition (freebsd-boot) of a GPT partitioned drive ada0:
+ "gpart bootcode -p /boot/gptzfsboot -i 1 ada0"
Non-boot pools do not need these updates.
Modified: projects/ifnet/cddl/contrib/opensolaris/cmd/zdb/zdb.c
==============================================================================
--- projects/ifnet/cddl/contrib/opensolaris/cmd/zdb/zdb.c Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/cddl/contrib/opensolaris/cmd/zdb/zdb.c Mon Nov 10 18:47:59 2014 (r274350)
@@ -2147,6 +2147,8 @@ dump_label(const char *dev)
(void) close(fd);
}
+static uint64_t num_large_blocks;
+
/*ARGSUSED*/
static int
dump_one_dir(const char *dsname, void *arg)
@@ -2159,6 +2161,8 @@ dump_one_dir(const char *dsname, void *a
(void) printf("Could not open %s, error %d\n", dsname, error);
return (0);
}
+ if (dmu_objset_ds(os)->ds_large_blocks)
+ num_large_blocks++;
dump_dir(os);
dmu_objset_disown(os, FTAG);
fuid_table_destroy();
@@ -2169,7 +2173,7 @@ dump_one_dir(const char *dsname, void *a
/*
* Block statistics.
*/
-#define PSIZE_HISTO_SIZE (SPA_MAXBLOCKSIZE / SPA_MINBLOCKSIZE + 1)
+#define PSIZE_HISTO_SIZE (SPA_OLD_MAXBLOCKSIZE / SPA_MINBLOCKSIZE + 2)
typedef struct zdb_blkstats {
uint64_t zb_asize;
uint64_t zb_lsize;
@@ -2234,7 +2238,15 @@ zdb_count_block(zdb_cb_t *zcb, zilog_t *
zb->zb_lsize += BP_GET_LSIZE(bp);
zb->zb_psize += BP_GET_PSIZE(bp);
zb->zb_count++;
- zb->zb_psize_histogram[BP_GET_PSIZE(bp) >> SPA_MINBLOCKSHIFT]++;
+
+ /*
+ * The histogram is only big enough to record blocks up to
+ * SPA_OLD_MAXBLOCKSIZE; larger blocks go into the last,
+ * "other", bucket.
+ */
+ int idx = BP_GET_PSIZE(bp) >> SPA_MINBLOCKSHIFT;
+ idx = MIN(idx, SPA_OLD_MAXBLOCKSIZE / SPA_MINBLOCKSIZE + 1);
+ zb->zb_psize_histogram[idx]++;
zb->zb_gangs += BP_COUNT_GANG(bp);
@@ -2946,6 +2958,7 @@ dump_zpool(spa_t *spa)
dump_metaslab_groups(spa);
if (dump_opt['d'] || dump_opt['i']) {
+ uint64_t refcount;
dump_dir(dp->dp_meta_objset);
if (dump_opt['d'] >= 3) {
dump_bpobj(&spa->spa_deferred_bpobj,
@@ -2965,8 +2978,21 @@ dump_zpool(spa_t *spa)
}
(void) dmu_objset_find(spa_name(spa), dump_one_dir,
NULL, DS_FIND_SNAPSHOTS | DS_FIND_CHILDREN);
+
+ (void) feature_get_refcount(spa,
+ &spa_feature_table[SPA_FEATURE_LARGE_BLOCKS], &refcount);
+ if (num_large_blocks != refcount) {
+ (void) printf("large_blocks feature refcount mismatch: "
+ "expected %lld != actual %lld\n",
+ (longlong_t)num_large_blocks,
+ (longlong_t)refcount);
+ rc = 2;
+ } else {
+ (void) printf("Verified large_blocks feature refcount "
+ "is correct (%llu)\n", (longlong_t)refcount);
+ }
}
- if (dump_opt['b'] || dump_opt['c'])
+ if (rc == 0 && (dump_opt['b'] || dump_opt['c']))
rc = dump_block_stats(spa);
if (rc == 0)
Modified: projects/ifnet/cddl/contrib/opensolaris/cmd/zfs/zfs.8
==============================================================================
--- projects/ifnet/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Mon Nov 10 18:47:59 2014 (r274350)
@@ -30,7 +30,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd June 30, 2014
+.Dd November 10, 2014
.Dt ZFS 8
.Os
.Sh NAME
@@ -179,12 +179,12 @@
.Ar bookmark
.Nm
.Cm send
-.Op Fl DnPpRve
+.Op Fl DnPpRveL
.Op Fl i Ar snapshot | Fl I Ar snapshot
.Ar snapshot
.Nm
.Cm send
-.Op Fl e
+.Op Fl eL
.Op Fl i Ar snapshot Ns | Ns bookmark
.Ar filesystem Ns | Ns Ar volume Ns | Ns Ar snapshot
.Nm
@@ -1187,6 +1187,12 @@ systems is strongly discouraged, and may
.Pp
The size specified must be a power of two greater than or equal to 512 and less
than or equal to 128 Kbytes.
+If the
+.Sy large_blocks
+feature is enabled on the pool, the size may be up to 1 Mbyte.
+See
+.Xr zpool-features 7
+for details on ZFS feature flags.
.Pp
Changing the file system's
.Sy recordsize
@@ -2477,7 +2483,7 @@ feature.
.It Xo
.Nm
.Cm send
-.Op Fl DnPpRve
+.Op Fl DnPpRveL
.Op Fl i Ar snapshot | Fl I Ar snapshot
.Ar snapshot
.Xc
@@ -2549,6 +2555,22 @@ be used regardless of the dataset's
property, but performance will be much better if the filesystem uses a
dedup-capable checksum (eg.
.Sy sha256 ) .
+.It Fl L
+Generate a stream which may contain blocks larger than 128KB.
+This flag
+has no effect if the
+.Sy large_blocks
+pool feature is disabled, or if the
+.Sy recordsize
+property of this filesystem has never been set above 128KB.
+The receiving system must have the
+.Sy large_blocks
+pool feature enabled as well.
+See
+.Xr zpool-features 7
+for details on ZFS feature flags and the
+.Sy large_blocks
+feature.
.It Fl e
Generate a more compact stream by using WRITE_EMBEDDED records for blocks
which are stored more compactly on disk by the
@@ -2596,7 +2618,7 @@ on future versions of
.It Xo
.Nm
.Cm send
-.Op Fl e
+.Op Fl eL
.Op Fl i Ar snapshot Ns | Ns Ar bookmark
.Ar filesystem Ns | Ns Ar volume Ns | Ns Ar snapshot
.Xc
@@ -2622,6 +2644,22 @@ specified as the last component of the n
If the incremental target is a clone, the incremental source can
be the origin snapshot, or an earlier snapshot in the origin's filesystem,
or the origin's origin, etc.
+.It Fl L
+Generate a stream which may contain blocks larger than 128KB.
+This flag
+has no effect if the
+.Sy large_blocks
+pool feature is disabled, or if the
+.Sy recordsize
+property of this filesystem has never been set above 128KB.
+The receiving system must have the
+.Sy large_blocks
+pool feature enabled as well.
+See
+.Xr zpool-features 7
+for details on ZFS feature flags and the
+.Sy large_blocks
+feature.
.It Fl e
Generate a more compact stream by using WRITE_EMBEDDED records for blocks
which are stored more compactly on disk by the
Modified: projects/ifnet/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c
==============================================================================
--- projects/ifnet/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c Mon Nov 10 18:47:59 2014 (r274350)
@@ -274,9 +274,9 @@ get_usage(zfs_help_t idx)
case HELP_ROLLBACK:
return (gettext("\trollback [-rRf] <snapshot>\n"));
case HELP_SEND:
- return (gettext("\tsend [-DnPpRve] [-[iI] snapshot] "
+ return (gettext("\tsend [-DnPpRvLe] [-[iI] snapshot] "
"<snapshot>\n"
- "\tsend [-e] [-i snapshot|bookmark] "
+ "\tsend [-Le] [-i snapshot|bookmark] "
"<filesystem|volume|snapshot>\n"));
case HELP_SET:
return (gettext("\tset <property=value> "
@@ -3709,7 +3709,7 @@ zfs_do_send(int argc, char **argv)
boolean_t extraverbose = B_FALSE;
/* check options */
- while ((c = getopt(argc, argv, ":i:I:RDpvnPe")) != -1) {
+ while ((c = getopt(argc, argv, ":i:I:RDpvnPLe")) != -1) {
switch (c) {
case 'i':
if (fromname)
@@ -3744,6 +3744,9 @@ zfs_do_send(int argc, char **argv)
case 'n':
flags.dryrun = B_TRUE;
break;
+ case 'L':
+ flags.largeblock = B_TRUE;
+ break;
case 'e':
flags.embed_data = B_TRUE;
break;
@@ -3800,6 +3803,8 @@ zfs_do_send(int argc, char **argv)
if (zhp == NULL)
return (1);
+ if (flags.largeblock)
+ lzc_flags |= LZC_SEND_FLAG_LARGE_BLOCK;
if (flags.embed_data)
lzc_flags |= LZC_SEND_FLAG_EMBED_DATA;
Modified: projects/ifnet/cddl/contrib/opensolaris/cmd/zpool/zpool-features.7
==============================================================================
--- projects/ifnet/cddl/contrib/opensolaris/cmd/zpool/zpool-features.7 Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/cddl/contrib/opensolaris/cmd/zpool/zpool-features.7 Mon Nov 10 18:47:59 2014 (r274350)
@@ -23,7 +23,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd July 1, 2014
+.Dd November 10, 2014
.Dt ZPOOL-FEATURES 7
.Os
.Sh NAME
@@ -427,6 +427,33 @@ This feature becomes
as soon as it is enabled and will
never return to being
.Sy enabled .
+.It Sy large_blocks
+.Bl -column "READ\-ONLY COMPATIBLE" "org.open-zfs:large_block"
+.It GUID Ta org.open-zfs:large_block
+.It READ\-ONLY COMPATIBLE Ta no
+.It DEPENDENCIES Ta extensible_dataset
+.El
+.Pp
+The
+.Sy large_block
+feature allows the record size on a dataset to be
+set larger than 128KB.
+.Pp
+This feature becomes
+.Sy active
+once a
+.Sy recordsize
+property has been set larger than 128KB, and will return to being
+.Sy enabled
+once all filesystems that have ever had their recordsize larger than 128KB
+are destroyed.
+.Pp
+Please note that booting from datasets that have recordsize greater than
+128KB is
+.Em NOT
+supported by the
+.Fx
+boot loader.
.El
.Sh SEE ALSO
.Xr zpool 8
Modified: projects/ifnet/cddl/contrib/opensolaris/cmd/zstreamdump/zstreamdump.c
==============================================================================
--- projects/ifnet/cddl/contrib/opensolaris/cmd/zstreamdump/zstreamdump.c Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/cddl/contrib/opensolaris/cmd/zstreamdump/zstreamdump.c Mon Nov 10 18:47:59 2014 (r274350)
@@ -54,7 +54,6 @@ uint64_t total_stream_len = 0;
FILE *send_stream = 0;
boolean_t do_byteswap = B_FALSE;
boolean_t do_cksum = B_TRUE;
-#define INITIAL_BUFLEN (1<<20)
static void
usage(void)
@@ -67,6 +66,18 @@ usage(void)
exit(1);
}
+static void *
+safe_malloc(size_t size)
+{
+ void *rv = malloc(size);
+ if (rv == NULL) {
+ (void) fprintf(stderr, "ERROR; failed to allocate %zu bytes\n",
+ size);
+ abort();
+ }
+ return (rv);
+}
+
/*
* ssread - send stream read.
*
@@ -158,7 +169,7 @@ print_block(char *buf, int length)
int
main(int argc, char *argv[])
{
- char *buf = malloc(INITIAL_BUFLEN);
+ char *buf = safe_malloc(SPA_MAXBLOCKSIZE);
uint64_t drr_record_count[DRR_NUMTYPES] = { 0 };
uint64_t total_records = 0;
dmu_replay_record_t thedrr;
@@ -307,9 +318,9 @@ main(int argc, char *argv[])
nvlist_t *nv;
int sz = drr->drr_payloadlen;
- if (sz > INITIAL_BUFLEN) {
+ if (sz > SPA_MAXBLOCKSIZE) {
free(buf);
- buf = malloc(sz);
+ buf = safe_malloc(sz);
}
(void) ssread(buf, sz, &zc);
if (ferror(send_stream))
Modified: projects/ifnet/cddl/contrib/opensolaris/cmd/ztest/ztest.c
==============================================================================
--- projects/ifnet/cddl/contrib/opensolaris/cmd/ztest/ztest.c Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/cddl/contrib/opensolaris/cmd/ztest/ztest.c Mon Nov 10 18:47:59 2014 (r274350)
@@ -987,9 +987,15 @@ ztest_spa_get_ashift() {
static int
ztest_random_blocksize(void)
{
- // Choose a block size >= the ashift.
- uint64_t block_shift =
- ztest_random(SPA_MAXBLOCKSHIFT - ztest_spa_get_ashift() + 1);
+ uint64_t block_shift;
+ /*
+ * Choose a block size >= the ashift.
+ * If the SPA supports new MAXBLOCKSIZE, test up to 1MB blocks.
+ */
+ int maxbs = SPA_OLD_MAXBLOCKSHIFT;
+ if (spa_maxblocksize(ztest_spa) == SPA_MAXBLOCKSIZE)
+ maxbs = 20;
+ block_shift = ztest_random(maxbs - ztest_spa_get_ashift() + 1);
return (1 << (SPA_MINBLOCKSHIFT + block_shift));
}
@@ -4789,7 +4795,7 @@ ztest_fault_inject(ztest_ds_t *zd, uint6
char path0[MAXPATHLEN];
char pathrand[MAXPATHLEN];
size_t fsize;
- int bshift = SPA_MAXBLOCKSHIFT + 2; /* don't scrog all labels */
+ int bshift = SPA_OLD_MAXBLOCKSHIFT + 2; /* don't scrog all labels */
int iters = 1000;
int maxfaults;
int mirror_save;
Modified: projects/ifnet/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h
==============================================================================
--- projects/ifnet/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h Mon Nov 10 18:47:59 2014 (r274350)
@@ -609,6 +609,9 @@ typedef struct sendflags {
/* show progress (ie. -v) */
boolean_t progress;
+ /* large blocks (>128K) are permitted */
+ boolean_t largeblock;
+
/* WRITE_EMBEDDED records of type DATA are permitted */
boolean_t embed_data;
} sendflags_t;
Modified: projects/ifnet/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c
==============================================================================
--- projects/ifnet/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c Mon Nov 10 18:47:59 2014 (r274350)
@@ -1080,21 +1080,36 @@ zfs_valid_proplist(libzfs_handle_t *hdl,
break;
}
- case ZFS_PROP_RECORDSIZE:
case ZFS_PROP_VOLBLOCKSIZE:
- /* must be power of two within SPA_{MIN,MAX}BLOCKSIZE */
+ case ZFS_PROP_RECORDSIZE:
+ {
+ int maxbs = SPA_MAXBLOCKSIZE;
+ if (zhp != NULL) {
+ maxbs = zpool_get_prop_int(zhp->zpool_hdl,
+ ZPOOL_PROP_MAXBLOCKSIZE, NULL);
+ }
+ /*
+ * Volumes are limited to a volblocksize of 128KB,
+ * because they typically service workloads with
+ * small random writes, which incur a large performance
+ * penalty with large blocks.
+ */
+ if (prop == ZFS_PROP_VOLBLOCKSIZE)
+ maxbs = SPA_OLD_MAXBLOCKSIZE;
+ /*
+ * The value must be a power of two between
+ * SPA_MINBLOCKSIZE and maxbs.
+ */
if (intval < SPA_MINBLOCKSIZE ||
- intval > SPA_MAXBLOCKSIZE || !ISP2(intval)) {
+ intval > maxbs || !ISP2(intval)) {
zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
- "'%s' must be power of 2 from %u "
- "to %uk"), propname,
- (uint_t)SPA_MINBLOCKSIZE,
- (uint_t)SPA_MAXBLOCKSIZE >> 10);
+ "'%s' must be power of 2 from 512B "
+ "to %uKB"), propname, maxbs >> 10);
(void) zfs_error(hdl, EZFS_BADPROP, errbuf);
goto error;
}
break;
-
+ }
case ZFS_PROP_MLSLABEL:
{
#ifdef sun
@@ -1471,7 +1486,9 @@ zfs_setprop_error(libzfs_handle_t *hdl,
break;
case ERANGE:
- if (prop == ZFS_PROP_COMPRESSION) {
+ case EDOM:
+ if (prop == ZFS_PROP_COMPRESSION ||
+ prop == ZFS_PROP_RECORDSIZE) {
(void) zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
"property setting is not allowed on "
"bootable datasets"));
@@ -3197,9 +3214,7 @@ zfs_create(libzfs_handle_t *hdl, const c
case EDOM:
zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
"volume block size must be power of 2 from "
- "%u to %uk"),
- (uint_t)SPA_MINBLOCKSIZE,
- (uint_t)SPA_MAXBLOCKSIZE >> 10);
+ "512B to 128KB"));
return (zfs_error(hdl, EZFS_BADPROP, errbuf));
Modified: projects/ifnet/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c
==============================================================================
--- projects/ifnet/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Mon Nov 10 18:47:59 2014 (r274350)
@@ -215,7 +215,7 @@ static void *
cksummer(void *arg)
{
dedup_arg_t *dda = arg;
- char *buf = malloc(1<<20);
+ char *buf = zfs_alloc(dda->dedup_hdl, SPA_MAXBLOCKSIZE);
dmu_replay_record_t thedrr;
dmu_replay_record_t *drr = &thedrr;
struct drr_begin *drrb = &thedrr.drr_u.drr_begin;
@@ -280,9 +280,9 @@ cksummer(void *arg)
DMU_COMPOUNDSTREAM && drr->drr_payloadlen != 0) {
int sz = drr->drr_payloadlen;
- if (sz > 1<<20) {
- free(buf);
- buf = malloc(sz);
+ if (sz > SPA_MAXBLOCKSIZE) {
+ buf = zfs_realloc(dda->dedup_hdl, buf,
+ SPA_MAXBLOCKSIZE, sz);
}
(void) ssread(buf, sz, ofp);
if (ferror(stdin))
@@ -815,7 +815,7 @@ typedef struct send_dump_data {
char prevsnap[ZFS_MAXNAMELEN];
uint64_t prevsnap_obj;
boolean_t seenfrom, seento, replicate, doall, fromorigin;
- boolean_t verbose, dryrun, parsable, progress, embed_data;
+ boolean_t verbose, dryrun, parsable, progress, embed_data, large_block;
int outfd;
boolean_t err;
nvlist_t *fss;
@@ -1163,6 +1163,8 @@ dump_snapshot(zfs_handle_t *zhp, void *a
}
enum lzc_send_flags flags = 0;
+ if (sdd->large_block)
+ flags |= LZC_SEND_FLAG_LARGE_BLOCK;
if (sdd->embed_data)
flags |= LZC_SEND_FLAG_EMBED_DATA;
@@ -1511,6 +1513,7 @@ zfs_send(zfs_handle_t *zhp, const char *
sdd.parsable = flags->parsable;
sdd.progress = flags->progress;
sdd.dryrun = flags->dryrun;
+ sdd.large_block = flags->largeblock;
sdd.embed_data = flags->embed_data;
sdd.filter_cb = filter_func;
sdd.filter_cb_arg = cb_arg;
@@ -2545,7 +2548,7 @@ static int
recv_skip(libzfs_handle_t *hdl, int fd, boolean_t byteswap)
{
dmu_replay_record_t *drr;
- void *buf = malloc(1<<20);
+ void *buf = zfs_alloc(hdl, SPA_MAXBLOCKSIZE);
char errbuf[1024];
(void) snprintf(errbuf, sizeof (errbuf), dgettext(TEXT_DOMAIN,
Modified: projects/ifnet/cddl/contrib/opensolaris/lib/libzfs_core/common/libzfs_core.c
==============================================================================
--- projects/ifnet/cddl/contrib/opensolaris/lib/libzfs_core/common/libzfs_core.c Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/cddl/contrib/opensolaris/lib/libzfs_core/common/libzfs_core.c Mon Nov 10 18:47:59 2014 (r274350)
@@ -502,6 +502,10 @@ lzc_get_holds(const char *snapname, nvli
*
* "fd" is the file descriptor to write the send stream to.
*
+ * If "flags" contains LZC_SEND_FLAG_LARGE_BLOCK, the stream is permitted
+ * to contain DRR_WRITE records with drr_length > 128K, and DRR_OBJECT
+ * records with drr_blksz > 128K.
+ *
* If "flags" contains LZC_SEND_FLAG_EMBED_DATA, the stream is permitted
* to contain DRR_WRITE_EMBEDDED records with drr_etype==BP_EMBEDDED_TYPE_DATA,
* which the receiving system must support (as indicated by support
@@ -518,6 +522,8 @@ lzc_send(const char *snapname, const cha
fnvlist_add_int32(args, "fd", fd);
if (from != NULL)
fnvlist_add_string(args, "fromsnap", from);
+ if (flags & LZC_SEND_FLAG_LARGE_BLOCK)
+ fnvlist_add_boolean(args, "largeblockok");
if (flags & LZC_SEND_FLAG_EMBED_DATA)
fnvlist_add_boolean(args, "embedok");
err = lzc_ioctl(ZFS_IOC_SEND_NEW, snapname, args, NULL);
Modified: projects/ifnet/cddl/contrib/opensolaris/lib/libzfs_core/common/libzfs_core.h
==============================================================================
--- projects/ifnet/cddl/contrib/opensolaris/lib/libzfs_core/common/libzfs_core.h Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/cddl/contrib/opensolaris/lib/libzfs_core/common/libzfs_core.h Mon Nov 10 18:47:59 2014 (r274350)
@@ -54,7 +54,8 @@ int lzc_release(nvlist_t *, nvlist_t **)
int lzc_get_holds(const char *, nvlist_t **);
enum lzc_send_flags {
- LZC_SEND_FLAG_EMBED_DATA = 1 << 0
+ LZC_SEND_FLAG_EMBED_DATA = 1 << 0,
+ LZC_SEND_FLAG_LARGE_BLOCK = 1 << 1
};
int lzc_send(const char *, const char *, int, enum lzc_send_flags);
Modified: projects/ifnet/etc/defaults/rc.conf
==============================================================================
--- projects/ifnet/etc/defaults/rc.conf Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/etc/defaults/rc.conf Mon Nov 10 18:47:59 2014 (r274350)
@@ -514,9 +514,6 @@ stf_interface_ipv4plen="0" # Prefix leng
stf_interface_ipv6_ifid="0:0:0:1" # IPv6 interface id for stf0.
# If you like, you can set "AUTO" for this.
stf_interface_ipv6_slaid="0000" # IPv6 Site Level Aggregator for stf0
-ipv6_faith_prefix="NO" # Set faith prefix to enable a FAITH
- # IPv6-to-IPv4 TCP translator. You also need
- # faithd(8) setup.
ipv6_ipv4mapping="NO" # Set to "YES" to enable IPv4 mapped IPv6 addr
# communication. (like ::ffff:a.b.c.d)
ipv6_ipfilter_rules="/etc/ipf6.rules" # rules definition file for ipfilter,
Modified: projects/ifnet/etc/network.subr
==============================================================================
--- projects/ifnet/etc/network.subr Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/etc/network.subr Mon Nov 10 18:47:59 2014 (r274350)
@@ -372,7 +372,6 @@ dhcpif()
case $1 in
lo[0-9]*|\
stf[0-9]*|\
- faith[0-9]*|\
lp[0-9]*|\
sl[0-9]*)
return 1
@@ -591,7 +590,6 @@ ipv6_autoconfif()
case $_if in
lo[0-9]*|\
stf[0-9]*|\
- faith[0-9]*|\
lp[0-9]*|\
sl[0-9]*)
return 1
Modified: projects/ifnet/etc/rc.d/Makefile
==============================================================================
--- projects/ifnet/etc/rc.d/Makefile Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/etc/rc.d/Makefile Mon Nov 10 18:47:59 2014 (r274350)
@@ -42,7 +42,6 @@ FILES= DAEMON \
dhclient \
dmesg \
dumpon \
- faith \
fsck \
ftpd \
gbde \
Modified: projects/ifnet/etc/rc.d/NETWORKING
==============================================================================
--- projects/ifnet/etc/rc.d/NETWORKING Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/etc/rc.d/NETWORKING Mon Nov 10 18:47:59 2014 (r274350)
@@ -4,7 +4,7 @@
#
# PROVIDE: NETWORKING NETWORK
-# REQUIRE: netif netoptions routing ppp ipfw stf faith
+# REQUIRE: netif netoptions routing ppp ipfw stf
# REQUIRE: defaultroute routed mrouted route6d mroute6d resolv bridge
# REQUIRE: static_arp static_ndp local_unbound
Modified: projects/ifnet/etc/rc.d/bridge
==============================================================================
--- projects/ifnet/etc/rc.d/bridge Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/etc/rc.d/bridge Mon Nov 10 18:47:59 2014 (r274350)
@@ -26,7 +26,7 @@
#
# PROVIDE: bridge
-# REQUIRE: netif faith ppp stf
+# REQUIRE: netif ppp stf
# KEYWORD: nojail
. /etc/rc.subr
Modified: projects/ifnet/etc/rc.d/defaultroute
==============================================================================
--- projects/ifnet/etc/rc.d/defaultroute Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/etc/rc.d/defaultroute Mon Nov 10 18:47:59 2014 (r274350)
@@ -6,7 +6,7 @@
#
# PROVIDE: defaultroute
-# REQUIRE: devd faith netif stf
+# REQUIRE: devd netif stf
# KEYWORD: nojail
. /etc/rc.subr
Modified: projects/ifnet/etc/rc.d/routing
==============================================================================
--- projects/ifnet/etc/rc.d/routing Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/etc/rc.d/routing Mon Nov 10 18:47:59 2014 (r274350)
@@ -6,7 +6,7 @@
#
# PROVIDE: routing
-# REQUIRE: faith netif ppp stf
+# REQUIRE: netif ppp stf
# KEYWORD: nojailvnet
. /etc/rc.subr
@@ -245,7 +245,7 @@ static_inet6()
[Nn][Oo][Nn][Ee])
return
;;
- lo0|faith[0-9]*)
+ lo0)
continue
;;
esac
Modified: projects/ifnet/lib/libc/net/getaddrinfo.c
==============================================================================
--- projects/ifnet/lib/libc/net/getaddrinfo.c Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/lib/libc/net/getaddrinfo.c Mon Nov 10 18:47:59 2014 (r274350)
@@ -30,8 +30,6 @@
*/
/*
- * "#ifdef FAITH" part is local hack for supporting IPv4-v6 translator.
- *
* Issues to be discussed:
* - Return values. There are nonstandard return values defined and used
* in the source code. This is because RFC2553 is silent about which error
@@ -101,10 +99,6 @@ __FBSDID("$FreeBSD$");
#include "nscache.h"
#endif
-#if defined(__KAME__) && defined(INET6)
-# define FAITH
-#endif
-
#define ANY 0
#define YES 1
#define NO 0
@@ -1316,47 +1310,6 @@ get_ai(const struct addrinfo *pai, const
{
char *p;
struct addrinfo *ai;
-#ifdef FAITH
- struct in6_addr faith_prefix;
- char *fp_str;
- int translate = 0;
-#endif
-
-#ifdef FAITH
- /*
- * Transfrom an IPv4 addr into a special IPv6 addr format for
- * IPv6->IPv4 translation gateway. (only TCP is supported now)
- *
- * +-----------------------------------+------------+
- * | faith prefix part (12 bytes) | embedded |
- * | | IPv4 addr part (4 bytes)
- * +-----------------------------------+------------+
- *
- * faith prefix part is specified as ascii IPv6 addr format
- * in environmental variable GAI.
- * For FAITH to work correctly, routing to faith prefix must be
- * setup toward a machine where a FAITH daemon operates.
- * Also, the machine must enable some mechanizm
- * (e.g. faith interface hack) to divert those packet with
- * faith prefixed destination addr to user-land FAITH daemon.
- */
- fp_str = getenv("GAI");
- if (fp_str && inet_pton(AF_INET6, fp_str, &faith_prefix) == 1 &&
- afd->a_af == AF_INET && pai->ai_socktype == SOCK_STREAM) {
- u_int32_t v4a;
- u_int8_t v4a_top;
-
- memcpy(&v4a, addr, sizeof v4a);
- v4a_top = v4a >> IN_CLASSA_NSHIFT;
- if (!IN_MULTICAST(v4a) && !IN_EXPERIMENTAL(v4a) &&
- v4a_top != 0 && v4a != IN_LOOPBACKNET) {
- afd = &afdl[N_INET6];
- memcpy(&faith_prefix.s6_addr[12], addr,
- sizeof(struct in_addr));
- translate = 1;
- }
- }
-#endif
ai = (struct addrinfo *)malloc(sizeof(struct addrinfo)
+ (afd->a_socklen));
@@ -1370,11 +1323,6 @@ get_ai(const struct addrinfo *pai, const
ai->ai_addrlen = afd->a_socklen;
ai->ai_addr->sa_family = ai->ai_family = afd->a_af;
p = (char *)(void *)(ai->ai_addr);
-#ifdef FAITH
- if (translate == 1)
- memcpy(p + afd->a_off, &faith_prefix, (size_t)afd->a_addrlen);
- else
-#endif
memcpy(p + afd->a_off, addr, (size_t)afd->a_addrlen);
return ai;
}
Modified: projects/ifnet/lib/libc/net/getnameinfo.c
==============================================================================
--- projects/ifnet/lib/libc/net/getnameinfo.c Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/lib/libc/net/getnameinfo.c Mon Nov 10 18:47:59 2014 (r274350)
@@ -414,7 +414,6 @@ getnameinfo_link(const struct sockaddr *
/*
* The following have zero-length addresses.
* IFT_ATM (net/if_atmsubr.c)
- * IFT_FAITH (net/if_faith.c)
* IFT_GIF (net/if_gif.c)
* IFT_LOOP (net/if_loop.c)
* IFT_PPP (net/if_ppp.c, net/if_spppsubr.c)
Modified: projects/ifnet/release/picobsd/bridge/PICOBSD
==============================================================================
--- projects/ifnet/release/picobsd/bridge/PICOBSD Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/release/picobsd/bridge/PICOBSD Mon Nov 10 18:47:59 2014 (r274350)
@@ -109,7 +109,6 @@ device tun # Packet tunnel.
device pty # Pseudo-ttys (telnet etc)
device md # Memory "disks"
#device gif 4 # IPv6 and IPv4 tunneling
-#device faith 1 # IPv6-to-IPv4 relaying (translation)
device tap
#options DEVICE_POLLING
Modified: projects/ifnet/release/picobsd/qemu/PICOBSD
==============================================================================
--- projects/ifnet/release/picobsd/qemu/PICOBSD Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/release/picobsd/qemu/PICOBSD Mon Nov 10 18:47:59 2014 (r274350)
@@ -114,7 +114,6 @@ device tun # Packet tunnel.
device pty # Pseudo-ttys (telnet etc)
device md # Memory "disks"
#device gif 4 # IPv6 and IPv4 tunneling
-#device faith 1 # IPv6-to-IPv4 relaying (translation)
device tap
#options VIMAGE # soner or later we may want to test this
Modified: projects/ifnet/sbin/camcontrol/camcontrol.c
==============================================================================
--- projects/ifnet/sbin/camcontrol/camcontrol.c Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/sbin/camcontrol/camcontrol.c Mon Nov 10 18:47:59 2014 (r274350)
@@ -5827,15 +5827,31 @@ scsisanitize(struct cam_device *device,
if (arglist & CAM_ARG_ERR_RECOVER)
ccb->ccb_h.flags |= CAM_PASS_ERR_RECOVER;
- if (((retval = cam_send_ccb(device, ccb)) < 0)
- || ((immediate == 0)
- && ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP))) {
- const char errstr[] = "error sending sanitize command";
+ if (cam_send_ccb(device, ccb) < 0) {
+ warn("error sending sanitize command");
+ error = 1;
+ goto scsisanitize_bailout;
+ }
- if (retval < 0)
- warn(errstr);
- else
- warnx(errstr);
+ if ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) {
+ struct scsi_sense_data *sense;
+ int error_code, sense_key, asc, ascq;
+
+ if ((ccb->ccb_h.status & CAM_STATUS_MASK) ==
+ CAM_SCSI_STATUS_ERROR) {
+ sense = &ccb->csio.sense_data;
+ scsi_extract_sense_len(sense, ccb->csio.sense_len -
+ ccb->csio.sense_resid, &error_code, &sense_key,
+ &asc, &ascq, /*show_errors*/ 1);
+
+ if (sense_key == SSD_KEY_ILLEGAL_REQUEST &&
+ asc == 0x20 && ascq == 0x00)
+ warnx("sanitize is not supported by "
+ "this device");
+ else
+ warnx("error sanitizing this device");
+ } else
+ warnx("error sanitizing this device");
if (arglist & CAM_ARG_VERBOSE) {
cam_error_print(device, ccb, CAM_ESF_ALL,
Modified: projects/ifnet/sbin/gbde/gbde.8
==============================================================================
--- projects/ifnet/sbin/gbde/gbde.8 Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/sbin/gbde/gbde.8 Mon Nov 10 18:47:59 2014 (r274350)
@@ -233,9 +233,23 @@ pass-phrase:
.Pp
.Dl "gbde setkey ada0s1f -n 2 -P foo -L key2.lockfile"
.Pp
-To destroy all copies of the masterkey:
+To invalidate your own masterkey:
+.Pp
+.Dl "gbde nuke ada0s1f"
+.Pp
+This will overwrite your masterkey sector with zeros, and results in
+a diagnostic if you try to use the key again.
+You can also destroy the other three copies of the masterkey with the
+-n argument.
+.Pp
+You can also invalidate your masterkey without leaving a tell-tale sector
+full of zeros:
.Pp
.Dl "gbde destroy ada0s1f"
+.Pp
+This will overwrite the information fields in your masterkey sector,
+encrypt it and write it back.
+You get a (different) diagnostic if you try to use it.
.Sh SEE ALSO
.Xr gbde 4 ,
.Xr geom 4
Modified: projects/ifnet/sbin/gbde/gbde.c
==============================================================================
--- projects/ifnet/sbin/gbde/gbde.c Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/sbin/gbde/gbde.c Mon Nov 10 18:47:59 2014 (r274350)
@@ -300,7 +300,6 @@ cmd_attach(const struct g_bde_softc *sc,
gctl_ro_param(r, "key", 16, buf);
close(ffd);
}
- /* gctl_dump(r, stdout); */
errstr = gctl_issue(r);
if (errstr != NULL)
errx(1, "Attach to %s failed: %s", dest, errstr);
@@ -371,7 +370,7 @@ cmd_open(struct g_bde_softc *sc, int dfd
if (error != 0)
errx(1, "Error %d decrypting lock", error);
if (nkey)
- printf("Opened with key %u\n", *nkey);
+ printf("Opened with key %u\n", 1 + *nkey);
return;
}
@@ -392,7 +391,7 @@ cmd_nuke(struct g_bde_key *gl, int dfd ,
free(sbuf);
if (i != (int)gl->sectorsize)
err(1, "write");
- printf("Nuked key %d\n", key);
+ printf("Nuked key %d\n", 1 + key);
}
static void
@@ -493,7 +492,7 @@ cmd_destroy(struct g_bde_key *gl, int nk
bzero(&gl->sector0, sizeof gl->sector0);
bzero(&gl->sectorN, sizeof gl->sectorN);
bzero(&gl->keyoffset, sizeof gl->keyoffset);
- bzero(&gl->flags, sizeof gl->flags);
+ gl->flags &= GBDE_F_SECT0;
bzero(gl->mkey, sizeof gl->mkey);
for (i = 0; i < G_BDE_MAXKEYS; i++)
if (i != nkey)
Modified: projects/ifnet/share/man/man4/Makefile
==============================================================================
--- projects/ifnet/share/man/man4/Makefile Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/share/man/man4/Makefile Mon Nov 10 18:47:59 2014 (r274350)
@@ -132,7 +132,6 @@ MAN= aac.4 \
et.4 \
eventtimers.4 \
exca.4 \
- faith.4 \
fatm.4 \
fd.4 \
fdc.4 \
@@ -637,7 +636,6 @@ MLINKS+=en.4 if_en.4
MLINKS+=enc.4 if_enc.4
MLINKS+=epair.4 if_epair.4
MLINKS+=et.4 if_et.4
-MLINKS+=faith.4 if_faith.4
MLINKS+=fatm.4 if_fatm.4
MLINKS+=fd.4 stderr.4 \
fd.4 stdin.4 \
Modified: projects/ifnet/share/man/man4/inet6.4
==============================================================================
--- projects/ifnet/share/man/man4/inet6.4 Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/share/man/man4/inet6.4 Mon Nov 10 18:47:59 2014 (r274350)
@@ -241,17 +241,6 @@ Defaults to off.
Boolean: the default value of a per-interface flag to
enable/disable performing automatic link-local address configuration.
Defaults to on.
-.It Dv IPV6CTL_KEEPFAITH
-.Pq ip6.keepfaith
-Boolean: enable/disable
-.Dq FAITH
-TCP relay IPv6-to-IPv4 translator code in the kernel.
-Refer
-.Xr faith 4
-and
-.Xr faithd 8
-for detail.
-Defaults to off.
.It Dv IPV6CTL_LOG_INTERVAL
.Pq ip6.log_interval
Integer: default interval between
Modified: projects/ifnet/share/man/man4/ip6.4
==============================================================================
--- projects/ifnet/share/man/man4/ip6.4 Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/share/man/man4/ip6.4 Mon Nov 10 18:47:59 2014 (r274350)
@@ -393,10 +393,6 @@ For wildcard sockets, this can restrict
.\".Ox
.\"IPv6 sockets are always IPv6-only, so the socket option is read-only
.\"(not modifiable).
-.It Dv IPV6_FAITH Fa "int *"
-Get or set the status of whether
-.Xr faith 4
-connections can be made to this socket.
.It Dv IPV6_USE_MIN_MTU Fa "int *"
Get or set whether the minimal IPv6 maximum transmission unit (MTU) size
will be used to avoid fragmentation from occurring for subsequent
Modified: projects/ifnet/share/man/man5/rc.conf.5
==============================================================================
--- projects/ifnet/share/man/man5/rc.conf.5 Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/share/man/man5/rc.conf.5 Mon Nov 10 18:47:59 2014 (r274350)
@@ -2948,15 +2948,6 @@ This can be set to
.Pq Vt str
IPv6 Site Level Aggregator for
.Xr stf 4 .
-.It Va ipv6_faith_prefix
-.Pq Vt str
-If not set to
-.Dq Li NO ,
-this is the faith prefix to enable a FAITH IPv6-to-IPv4 TCP
-translator.
-You also need
-.Xr faithd 8
-setup.
.It Va ipv6_ipv4mapping
.Pq Vt bool
If set to
Modified: projects/ifnet/share/man/man7/hier.7
==============================================================================
--- projects/ifnet/share/man/man7/hier.7 Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/share/man/man7/hier.7 Mon Nov 10 18:47:59 2014 (r274350)
@@ -28,7 +28,7 @@
.\" @(#)hier.7 8.1 (Berkeley) 6/5/93
.\" $FreeBSD$
.\"
-.Dd July 25, 2014
+.Dd November 10, 2014
.Dt HIER 7
.Os
.Sh NAME
@@ -380,6 +380,8 @@ shared libraries for compatibility
.It Pa aout/
a.out backward compatibility libraries
.El
+.It Pa debug/
+standalone debug data for the base system libraries and binaries
.It Pa dtrace/
DTrace library scripts
.It Pa engines/
Modified: projects/ifnet/sys/amd64/amd64/genassym.c
==============================================================================
--- projects/ifnet/sys/amd64/amd64/genassym.c Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/sys/amd64/amd64/genassym.c Mon Nov 10 18:47:59 2014 (r274350)
@@ -61,11 +61,6 @@ __FBSDID("$FreeBSD$");
#include <vm/pmap.h>
#include <vm/vm_map.h>
#include <sys/proc.h>
-#include <net/if.h>
-#include <netinet/in.h>
-#include <nfs/nfsproto.h>
-#include <nfsclient/nfs.h>
-#include <nfs/nfsdiskless.h>
#include <x86/apicreg.h>
#include <machine/cpu.h>
#include <machine/pcb.h>
Modified: projects/ifnet/sys/amd64/conf/GENERIC
==============================================================================
--- projects/ifnet/sys/amd64/conf/GENERIC Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/sys/amd64/conf/GENERIC Mon Nov 10 18:47:59 2014 (r274350)
@@ -310,7 +310,6 @@ device vlan # 802.1Q VLAN support
device tun # Packet tunnel.
device md # Memory "disks"
device gif # IPv6 and IPv4 tunneling
-device faith # IPv6-to-IPv4 relaying (translation)
device firmware # firmware assist module
# The `bpf' device enables the Berkeley Packet Filter.
Modified: projects/ifnet/sys/arm/conf/ATMEL
==============================================================================
--- projects/ifnet/sys/arm/conf/ATMEL Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/sys/arm/conf/ATMEL Mon Nov 10 18:47:59 2014 (r274350)
@@ -143,7 +143,6 @@ device vlan # 802.1Q VLAN support
device tun # Packet tunnel.
device md # Memory "disks"
device gif # IPv6 and IPv4 tunneling
-device faith # IPv6-to-IPv4 relaying (translation)
#device firmware # firmware assist module
# SCSI peripherals
Modified: projects/ifnet/sys/arm/conf/DOCKSTAR
==============================================================================
--- projects/ifnet/sys/arm/conf/DOCKSTAR Mon Nov 10 18:20:46 2014 (r274349)
+++ projects/ifnet/sys/arm/conf/DOCKSTAR Mon Nov 10 18:47:59 2014 (r274350)
@@ -54,7 +54,6 @@ options FDT_DTB_STATIC
# Misc pseudo devices
device bpf # Required for DHCP
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-projects
mailing list