Date: Mon, 10 Nov 2014 18:48:00 +0000 (UTC) From: Gleb Smirnoff <glebius@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: 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... Message-ID: <201411101848.sAAIm01g015720@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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 ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201411101848.sAAIm01g015720>