zfs/include/sys
Matthew Ahrens 6f1ffb0665 Illumos #2882, #2883, #2900
2882 implement libzfs_core
2883 changing "canmount" property to "on" should not always remount dataset
2900 "zfs snapshot" should be able to create multiple, arbitrary snapshots at once

Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Chris Siden <christopher.siden@delphix.com>
Reviewed by: Garrett D'Amore <garrett@damore.org>
Reviewed by: Bill Pijewski <wdp@joyent.com>
Reviewed by: Dan Kruchinin <dan.kruchinin@gmail.com>
Approved by: Eric Schrock <Eric.Schrock@delphix.com>

References:
  https://www.illumos.org/issues/2882
  https://www.illumos.org/issues/2883
  https://www.illumos.org/issues/2900
  illumos/illumos-gate@4445fffbbb

Ported-by: Tim Chase <tim@chase2k.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #1293

Porting notes:

WARNING: This patch changes the user/kernel ABI.  That means that
the zfs/zpool utilities built from master are NOT compatible with
the 0.6.2 kernel modules.  Ensure you load the matching kernel
modules from master after updating the utilities.  Otherwise the
zfs/zpool commands will be unable to interact with your pool and
you will see errors similar to the following:

  $ zpool list
  failed to read pool configuration: bad address
  no pools available

  $ zfs list
  no datasets available

Add zvol minor device creation to the new zfs_snapshot_nvl function.

Remove the logging of the "release" operation in
dsl_dataset_user_release_sync().  The logging caused a null dereference
because ds->ds_dir is zeroed in dsl_dataset_destroy_sync() and the
logging functions try to get the ds name via the dsl_dataset_name()
function. I've got no idea why this particular code would have worked
in Illumos.  This code has subsequently been completely reworked in
Illumos commit 3b2aab1 (3464 zfs synctask code needs restructuring).

Squash some "may be used uninitialized" warning/erorrs.

Fix some printf format warnings for %lld and %llu.

Apply a few spa_writeable() changes that were made to Illumos in
illumos/illumos-gate.git@cd1c8b8 as part of the 3112, 3113, 3114 and
3115 fixes.

Add a missing call to fnvlist_free(nvl) in log_internal() that was added
in Illumos to fix issue 3085 but couldn't be ported to ZoL at the time
(zfsonlinux/zfs@9e11c73) because it depended on future work.
2013-09-04 15:49:00 -07:00
..
fm 3246 ZFS I/O deadman thread 2013-05-01 17:05:52 -07:00
fs Illumos #2882, #2883, #2900 2013-09-04 15:49:00 -07:00
Makefile.am Change zfs-kmod-devel install path 2013-03-13 13:42:16 -07:00
arc.h Illumos #3137 L2ARC compression 2013-08-08 13:27:21 -07:00
avl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
avl_impl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
bplist.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
bpobj.h Illumos #3104: eliminate empty bpobjs 2013-01-08 10:35:43 -08:00
bptree.h Illumos #2619 and #2747 2013-01-08 10:35:35 -08:00
dbuf.h Illumos #3964 L2ARC should always compress metadata buffers 2013-08-08 13:37:00 -07:00
ddt.h Add ddt_object_count() error handling 2012-10-29 08:57:45 -07:00
dmu.h Illumos #2882, #2883, #2900 2013-09-04 15:49:00 -07:00
dmu_impl.h Illumos #2703: add mechanism to report ZFS send progress 2012-09-19 13:39:06 -07:00
dmu_objset.h Illumos #2882, #2883, #2900 2013-09-04 15:49:00 -07:00
dmu_traverse.h Illumos #3498 panic in arc_read() 2013-07-02 13:34:31 -07:00
dmu_tx.h Add --enable-debug-dmu-tx configure option 2012-03-23 12:25:17 -07:00
dmu_zfetch.h Add missing ZFS tunables 2011-05-04 10:02:37 -07:00
dnode.h Illumos #3122 zfs destroy filesystem should prefetch blocks 2013-07-02 13:34:02 -07:00
dsl_dataset.h Illumos #2882, #2883, #2900 2013-09-04 15:49:00 -07:00
dsl_deadlist.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
dsl_deleg.h Illumos #2882, #2883, #2900 2013-09-04 15:49:00 -07:00
dsl_dir.h Switch KM_SLEEP to KM_PUSHPAGE 2012-08-27 12:01:37 -07:00
dsl_pool.h Add new kstat for monitoring time in dmu_tx_assign 2013-07-11 13:53:44 -07:00
dsl_prop.h Illumos #2882, #2883, #2900 2013-09-04 15:49:00 -07:00
dsl_scan.h Illumos #2619 and #2747 2013-01-08 10:35:35 -08:00
dsl_synctask.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
efi_partition.h Move partition scanning from userspace to module. 2012-07-17 09:17:31 -07:00
metaslab.h Add FASTWRITE algorithm for synchronous writes. 2012-10-17 08:56:41 -07:00
metaslab_impl.h Illumos #3552, #3564 2013-06-19 16:22:39 -07:00
nvpair.h Register correct handlers in nvlist_alloc() 2013-06-20 09:58:15 -07:00
nvpair_impl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
refcount.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
rrwlock.h Illumos #2882, #2883, #2900 2013-09-04 15:49:00 -07:00
sa.h Add sa_spill_rele() interface 2012-03-07 16:28:00 -08:00
sa_impl.h Illumos #3208 cross-endian incorrect user/group accounting 2013-01-14 09:32:22 -08:00
spa.h Illumos #2882, #2883, #2900 2013-09-04 15:49:00 -07:00
spa_boot.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
spa_impl.h Use taskq for dump_bytes() 2013-05-06 14:05:42 -07:00
space_map.h Illumos #3552, #3564 2013-06-19 16:22:39 -07:00
txg.h Illumos #3086: unnecessarily setting DS_FLAG_INCONSISTENT on async 2013-01-08 10:35:43 -08:00
txg_impl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
u8_textprep.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
u8_textprep_data.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
uberblock.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
uberblock_impl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
uio_impl.h Add basic uio support 2011-02-10 09:21:43 -08:00
unique.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
uuid.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
vdev.h 3246 ZFS I/O deadman thread 2013-05-01 17:05:52 -07:00
vdev_disk.h Linux 2.6.x compat, blkdev_compat.h 2011-02-23 12:29:38 -08:00
vdev_file.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
vdev_impl.h Illumos #3618 ::zio dcmd does not show timestamp data 2013-08-12 16:46:50 -07:00
xvattr.h Add xvattr support 2011-03-02 11:43:50 -08:00
zap.h Illumos #3104: eliminate empty bpobjs 2013-01-08 10:35:43 -08:00
zap_impl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zap_leaf.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zfeature.h Illumos #2762: zpool command should have better support for feature flags 2013-01-08 10:35:43 -08:00
zfs_acl.h Fix build failures on PaX/GRSecurity patched kernels 2012-07-17 09:22:43 -07:00
zfs_context.h Illumos #2882, #2883, #2900 2013-09-04 15:49:00 -07:00
zfs_ctldir.h Linux 3.7 compat, schedule_delayed_work() 2012-12-12 10:47:05 -08:00
zfs_debug.h Cleanly support debug packages 2012-02-27 14:08:17 -08:00
zfs_dir.h Prototype/structure update for Linux 2011-02-10 09:27:21 -08:00
zfs_fuid.h Prototype/structure update for Linux 2011-02-10 09:27:21 -08:00
zfs_ioctl.h Illumos #2882, #2883, #2900 2013-09-04 15:49:00 -07:00
zfs_onexit.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zfs_rlock.h Range lock performance improvements 2011-03-08 12:44:06 -08:00
zfs_sa.h Implement SA based xattrs 2011-11-28 15:45:51 -08:00
zfs_stat.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zfs_vfsops.h Fix 'zfs rollback' on mounted file systems 2013-01-17 09:51:20 -08:00
zfs_vnops.h Linux 3.11 compat: fops->iterate() 2013-08-15 16:19:07 -07:00
zfs_znode.h Constify structures containing function pointers 2013-03-04 08:49:32 -08:00
zil.h Constify structures containing function pointers 2013-03-04 08:49:32 -08:00
zil_impl.h Illumos #3086: unnecessarily setting DS_FLAG_INCONSISTENT on async 2013-01-08 10:35:43 -08:00
zio.h Illumos #3618 ::zio dcmd does not show timestamp data 2013-08-12 16:46:50 -07:00
zio_checksum.h Constify structures containing function pointers 2013-03-04 08:49:32 -08:00
zio_compress.h Constify structures containing function pointers 2013-03-04 08:49:32 -08:00
zio_impl.h Illumos #3329, #3330, #3331, #3335 2013-05-06 12:39:34 -07:00
zpl.h Linux 3.11 compat: fops->iterate() 2013-08-15 16:19:07 -07:00
zrlock.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zvol.h Add snapdev=[hidden|visible] dataset property 2013-03-05 12:37:54 -08:00