]> git.proxmox.com Git - mirror_zfs-debian.git/log
mirror_zfs-debian.git
12 years agoMerge branch 'upstream'
Darik Horn [Sat, 29 Oct 2011 00:38:41 +0000 (19:38 -0500)]
Merge branch 'upstream'

12 years agoDepend on udev that provides stand-alone path_id.
Darik Horn [Sat, 29 Oct 2011 00:21:08 +0000 (19:21 -0500)]
Depend on udev that provides stand-alone path_id.

Per issue zfsonlinux/zfs#147 by @jvolkman:

The `zpool_id` script invokes `/lib/udev/path_id`, which was removed
in udev-174, so depend the zfsutils package on earlier releases.

12 years agoIllumos #1661: Fix flaw in sa_find_sizes() calculation
Xin Li [Fri, 21 Oct 2011 23:39:53 +0000 (16:39 -0700)]
Illumos #1661: Fix flaw in sa_find_sizes() calculation

When calculating space needed for SA_BONUS buffers, hdrsize is
always rounded up to next 8-aligned boundary. However, in two places
the round up was done against sum of 'total' plus hdrsize. On the
other hand, hdrsize increments by 4 each time, which means in certain
conditions, we would end up returning with will_spill == 0 and
(total + hdrsize) larger than full_space, leading to a failed
assertion because it's invalid for dmu_set_bonus.

Reviewed by: Matthew Ahrens <matt@delphix.com>
Reviewed by: Dan McDonald <danmcd@nexenta.com>
Approved by: Gordon Ross <gwr@nexenta.com>

References to Illumos issue:
  https://www.illumos.org/issues/1661

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #426

12 years agoChange sun.com URLs to zfsonlinux.org
Darik Horn [Sat, 22 Oct 2011 15:44:03 +0000 (10:44 -0500)]
Change sun.com URLs to zfsonlinux.org

ZFS contains error messages that point to the defunct www.sun.com
domain, which is currently offline.  Change these error messages
to use the zfsonlinux.org mirror instead.

This commit depends on:

  zfsonlinux/zfsonlinux.github.com@8e10ead3dc66e2204ae893d81528371405f107e7

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
12 years agoPPA 0.6.0.35-0ubuntu2 release.
Darik Horn [Wed, 19 Oct 2011 23:12:41 +0000 (18:12 -0500)]
PPA 0.6.0.35-0ubuntu2 release.

Increment the META version. The previous build was bad because the
volatile-version.patch was not updated, which caused this error:

  Setting up zfs-dkms (0.6.0.35-0ubuntu1~oneiric1) ...
  First Installation: checking all kernels...
  Building only for 3.0.0-12-generic
  This package appears to be a binaries-only package
   you will not be able to build against kernel 3.0.0-12-generic
   since the package source was not provided

12 years agoPPA 0.6.0.35-0ubuntu1 release.
Darik Horn [Wed, 19 Oct 2011 20:27:58 +0000 (15:27 -0500)]
PPA 0.6.0.35-0ubuntu1 release.

12 years agoMerge branch 'upstream'
Darik Horn [Wed, 19 Oct 2011 20:25:21 +0000 (15:25 -0500)]
Merge branch 'upstream'

12 years agoInclude distribution in release
Brian Behlendorf [Wed, 19 Oct 2011 18:43:11 +0000 (11:43 -0700)]
Include distribution in release

Common practice is to include the distribution in the package release.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
12 years agoSet mtime on symbolic links
Brian Behlendorf [Tue, 18 Oct 2011 21:51:03 +0000 (14:51 -0700)]
Set mtime on symbolic links

Register the setattr/getattr callbacks for symlinks.  Without these
the generic inode_setattr() and generic_fillattr() functions will
be used.  In the setattr case this will only result in the inode being
updated in memory, the dirty_inode callback would also normally run
but none is registered for zfs.

The straight forward fix is to set the setattr/getattr callbacks
for symlinks so they are handled just like files and directories.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #412

12 years agoIllumos #755: dmu_recv_stream builds incomplete guid_to_ds_map
Alexander Stetsenko [Sun, 16 Oct 2011 06:41:05 +0000 (08:41 +0200)]
Illumos #755: dmu_recv_stream builds incomplete guid_to_ds_map

An incomplete guid_to_ds_map would cause restore_write_byref() to fail
while receiving a de-duplicated backup stream.

Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Garrett D`Amore <garrett@nexenta.com>
Reviewed by: Gordon Ross <gwr@nexenta.com>
Approved by: Gordon Ross <gwr@nexenta.com>

References to Illumos issue and patch:
- https://www.illumos.org/issues/755
- https://github.com/illumos/illumos-gate/commit/ec5cf9d53a

Signed-off-by: Gunnar Beutner <gunnar@beutner.name>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #372

12 years agoUse @ZFS_META LICENSE@ in spec.in files
Ned Bass [Mon, 17 Oct 2011 18:43:55 +0000 (11:43 -0700)]
Use @ZFS_META LICENSE@ in spec.in files

zfs.spec.in and zfs-modules.spec.in had the License field incorrectly
set to @LICENSE@, causing generated rpm packages to report an invalid
license string.  Fix this by using @ZFS_META_LICENSE@.

Signed-off-by: Ned Bass <bass6@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #422

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
12 years agoPPA 0.6.0.34-0ubuntu1 release.
Darik Horn [Wed, 12 Oct 2011 02:18:50 +0000 (21:18 -0500)]
PPA 0.6.0.34-0ubuntu1 release.

12 years agoAdd provides lustre-backend-fs to deb
Darik Horn [Wed, 12 Oct 2011 01:21:23 +0000 (20:21 -0500)]
Add provides lustre-backend-fs to deb

Reflect upstream commit 571837e130e313cdc5bd91497540de8379e4ea23 in
the debian packaging.

  The Lustre packages satify their backend fs requirement by
  checking that lustre-backend-fs is provided.  Update the zfs
  packaging accordingly.

12 years agoAdd patch: Use /bin/bash to invoke dracut scripts.
Darik Horn [Wed, 12 Oct 2011 00:57:42 +0000 (19:57 -0500)]
Add patch: Use /bin/bash to invoke dracut scripts.

The system shell on most Debian and Ubuntu systems is dash, so change
the whack-bang in the Dracut scripts from /bin/sh to /bin/bash.

The `printf "\x$DD\x$CC\x$BB\x$AA" >$TMP` line is problematic because
dash builtin does not implement the hex format.

The dracut/ tree needs more testing and tweaking for the older
dracut-005 package that is in Debian Squeeze and Ubuntu Oneiric.

12 years agoAdd news item: The PPA for ZFS is moving.
Darik Horn [Wed, 12 Oct 2011 00:36:18 +0000 (19:36 -0500)]
Add news item: The PPA for ZFS is moving.

12 years agoMerge branch 'upstream'
Darik Horn [Wed, 12 Oct 2011 00:23:36 +0000 (19:23 -0500)]
Merge branch 'upstream'

12 years agoDisable 90-zfs.rules for test suite
Brian Behlendorf [Tue, 11 Oct 2011 21:36:42 +0000 (14:36 -0700)]
Disable 90-zfs.rules for test suite

When running the zconfig.sh, zpios-sanity.sh, and zfault.sh
from the installed packages the 90-zfs.rules can cause failures.
These will occur because the test suite assumes it has full
control over loading/unloading the module stack.  If the stack
gets asynchronously loaded by the udev rule the test suite
will treat it as a failure.  Resolve the issue by disabling
the offending rule during the tests and enabling it on exit.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
12 years agoExport symbols for the VFS API
Brian Behlendorf [Mon, 10 Oct 2011 17:42:59 +0000 (10:42 -0700)]
Export symbols for the VFS API

Export all symbols already marked extern in the zfs_vfsops.h
header.  Several non-static symbols have also been added to
the header and exportewd.  This allows external modules to
more easily create and manipulate properly created ZFS
filesystem type datasets.

Rename zfsvfs_teardown() to zfs_sb_teardown and export it.
This is done simply for consistency with the rest of the code
base.  All other zfsvfs_* functions have already been renamed.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
12 years agoAdd provides lustre-backend-fs to rpm
Brian Behlendorf [Fri, 7 Oct 2011 16:14:12 +0000 (09:14 -0700)]
Add provides lustre-backend-fs to rpm

The Lustre packages satify their backend fs requirement by
checking that lustre-backend-fs is provided.  Update the zfs
packaging accordingly.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
12 years agoPrep zfs-0.6.0-rc6 tag
Brian Behlendorf [Thu, 6 Oct 2011 21:10:45 +0000 (14:10 -0700)]
Prep zfs-0.6.0-rc6 tag

Create the sixth 0.6.0 release candidate tag (rc6).

12 years agoExport symbols for the full SA API
Brian Behlendorf [Fri, 30 Sep 2011 17:33:26 +0000 (10:33 -0700)]
Export symbols for the full SA API

Export all the symbols for the system attribute (SA) API.  This
allows external module to cleanly manipulate the SAs associated
with a dnode.  Documention for the SA API can be found in the
module/zfs/sa.c source.

This change also removes the zfs_sa_uprade_pre, and
zfs_sa_uprade_post prototypes.  The functions themselves were
dropped some time ago.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
12 years agoSynchronize initramfs and system hostid
Brian Behlendorf [Fri, 30 Sep 2011 17:33:26 +0000 (10:33 -0700)]
Synchronize initramfs and system hostid

Relying on an /etc/hostid file which is installed in the system
image breaks diskless systems which share an image.  Certain
cluster infrastructure such as MPI relies on all nodes having
a unique hostid.  However, we still must be careful to ensure
the hostid is syncronized between the initramfs and system
images when using zfs root filesystems.

To accompish this the automatically created /etc/hostid file has
been removed from the spl rpm packaging.  The /etc/hostid file
is now dynamically created for your initramfs as part of the
dracut install process.  This avoids the need to install it in
the actual system images.

This change also resolves the spl_hostid parameter handling
for dracut.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #398
Closes #399

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
12 years agoFix 'unexpected operator' bashism
Oleg Stepura [Thu, 29 Sep 2011 20:59:07 +0000 (23:59 +0300)]
Fix 'unexpected operator' bashism

The == operator is specific to bash, replace it with the more
correct = operator for sh.  This bug can prevent correct booting
when using a zfs root pool.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #416

12 years agoAdd "activate update-initramfs" dpkg trigger.
Darik Horn [Thu, 29 Sep 2011 18:23:13 +0000 (13:23 -0500)]
Add "activate update-initramfs" dpkg trigger.

Use the deb-triggers infrastructure to automatically call
`update-initramfs` whenever the zfs-initramfs package changes.

12 years agoPPA 0.6.0.33-0ubuntu1 release.
Darik Horn [Thu, 29 Sep 2011 03:40:22 +0000 (22:40 -0500)]
PPA 0.6.0.33-0ubuntu1 release.

12 years agoMerge branch 'upstream'
Darik Horn [Thu, 29 Sep 2011 03:38:43 +0000 (22:38 -0500)]
Merge branch 'upstream'

12 years agozpl: Fix "df -i" to have better free inodes value
Andreas Dilger [Fri, 16 Sep 2011 09:22:00 +0000 (03:22 -0600)]
zpl: Fix "df -i" to have better free inodes value

Due to the confusion in Linux statfs between f_frsize and f_bsize
the blocks counts were changed to be in units of z_max_blksize
instead of SPA_MINBLOCKSIZE as it is on other platforms.

However, the free files calculation in zfs_statvfs() is limited by
the free blocks count, since each dnode consumes one block/sector.
This provided a reasonable estimate of free inodes, but on Linux
this meant that the free inodes count was underestimated by a large
amount, since 256 512-byte dnodes can fit into a 128kB block, and
more if the max blocksize is increased to 1MB or larger.

Also, the use of SPA_MINBLOCKSIZE is semantically incorrect since
DNODE_SIZE may change to a value other than SPA_MINBLOCKSIZE and
may even change per dataset, and devices with large sectors setting
ashift will also use a larger blocksize.

Correct the f_ffree calculation to use (availbytes >> DNODE_SHIFT)
to more accurately compute the maximum number of dnodes that can
be created.

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #413
Closes #400

12 years agoFix uninitialized varible in zfs_do_userspace()
Brian Behlendorf [Tue, 27 Sep 2011 23:32:53 +0000 (16:32 -0700)]
Fix uninitialized varible in zfs_do_userspace()

When compiling under Debian Lenny with gcc version 4.3.2
(Debian 4.3.2-1.1) the following warning occurs.  To quiet
the warning initialize 'error' to zero.  Newer versions of
gcc correctly determine that this uninitialized varible is
impossible because ZFS_NUM_USERQUOTA_PROPS is known to be
greater than zero.

  cmd/zfs/zfs_main.c:2377: warning: "error" may be
  used uninitialized in this function

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
12 years agoExport symbols for the full ZAP API
Brian Behlendorf [Tue, 27 Sep 2011 23:07:35 +0000 (16:07 -0700)]
Export symbols for the full ZAP API

Export all the symbols for the ZAP API.  This allows external modules
to cleanly interface with ZAP type objects.  Previously only a subset
of the functionality was exposed.  Documention for the ZAP API can be
found in the sys/zap.h header.

This change also removes a duplicate zap_increment_int() prototype.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
12 years agoMake libefi-created GPT compatible with gptfdisk
Zachary Bedell [Mon, 19 Sep 2011 01:35:42 +0000 (21:35 -0400)]
Make libefi-created GPT compatible with gptfdisk

GPT's created by libefi set the HeaderSize attribute in the GPT
header to 512 -- size of the GPT header INCLUDING the 420 padding
bytes at the end.  Most other tools set the size to 92 -- size of
the actual header itself excluding the padding.  Most tools check
the recorded HeaderSize when verifying CRC, but gptfdisk hardcodes
92 and thus reports CRC verification problems for full-disk vdevs
created IE with `zpool create pool sdc`.

This commit changes libefi's behavior for GPT creation and also
fixes several edge cases where libefi's behavior was similar
(though in an incompatible manner) to gptfdisk.  Libefi assumed
HeaderSize was always 512 even if the GPT recorded a different
value.  Sanity checks of the GPT headersize read from disk were
added before applying checksum calculation -- this will prevent
segfault in cases of bogus on-disk values.

Zpools created with the resuling libefi are verified as correct
both by parted and gptfdisk.  Also pool have been tested to
import correctly on ZFS on Linux as well as Solaris Express 11
livecd.

Signed-off-by: Zachary Bedell <zac@thebedells.org>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #344

12 years agoFix boot failure in Dracut scripts.
Zachary Bedell [Sun, 18 Sep 2011 03:42:43 +0000 (23:42 -0400)]
Fix boot failure in Dracut scripts.

mount-zfs.sh script incorrectly parsed results from zpool list.  Correct
bootfs attribute was only found on systems with a single pool or where
the bootable pool's name alphabetized to before all other pool names.
Boot failed when the bootable pool's name came after other pools
(IE 'rpool' and 'mypool' would fail to find bootfs on rpool.)

Patch correctly discards pools whose bootfs attribute is blank ('-').

Signed-off-by: Zachary Bedell <zac@thebedells.org>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #402

12 years agoUse automatic variable in Makefile
Ned Bass [Thu, 22 Sep 2011 22:36:42 +0000 (15:36 -0700)]
Use automatic variable in Makefile

As written, the $(init_SCRIPTS) rule in etc/init.d/Makefule.am
would not work as expected if the init_SCRIPTS variable were
to contain any elements other than zfs.  Fix this by replacing
the hard-coded 'zfs' reference with $@.

Signed-off-by: Ned Bass <bass6@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #410

12 years agoSuppress kmem_alloc() warning in zfs_prop_set_special()
Brian Behlendorf [Fri, 16 Sep 2011 03:23:50 +0000 (20:23 -0700)]
Suppress kmem_alloc() warning in zfs_prop_set_special()

Suppress the warning for this large kmem_alloc() because it is not
that far over the warning threshhold (8k) and it is short lived.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
12 years agoInstall zfs-devel headers in /usr/include
Brian Behlendorf [Mon, 12 Sep 2011 18:42:33 +0000 (11:42 -0700)]
Install zfs-devel headers in /usr/include

The zfs-devel header files for linking with the libspl/libzfs
libraries should be installed under /usr/include not /include.
Ensure the correct install location is used when building an
rpm package.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
12 years agoAutomatically set REMAKE_INITRD in the dkms.conf
Darik Horn [Sun, 11 Sep 2011 06:20:47 +0000 (01:20 -0500)]
Automatically set REMAKE_INITRD in the dkms.conf

If the runpart provided by either of the zfs-dracut or zfs-initramfs
packages exists, then set REMAKE_INITRD='yes' in the dkms.conf file
to ensure that current kernel modules are ready for starting the
system from a native ZFS root.

Recent DKMS releases directly source the dkms.conf file, so any such
variable can be set using a shell command substitution.

12 years agoPPA 0.6.0.32-0ubuntu1 release.
Darik Horn [Sat, 10 Sep 2011 01:28:43 +0000 (20:28 -0500)]
PPA 0.6.0.32-0ubuntu1 release.

12 years agoMerge branch 'upstream'
Darik Horn [Sat, 10 Sep 2011 01:26:49 +0000 (20:26 -0500)]
Merge branch 'upstream'

12 years agoFix usage of zsb after free
Brian Behlendorf [Fri, 9 Sep 2011 17:24:55 +0000 (10:24 -0700)]
Fix usage of zsb after free

Caught by code inspection, the variable zsb was referenced after
being freed.  Move the kmem_free() to the end of the function.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
12 years agoEnsure FC15 boots when zfs isn't used for boot partition
Jeremy Gill [Fri, 26 Aug 2011 17:55:26 +0000 (13:55 -0400)]
Ensure FC15 boots when zfs isn't used for boot partition

It seems that dracut version 009 through 013 won't boot correctly when
the zfs-dracut rpm package has been installed, but 'root=zfs' isn't
used on the boot commandline, for example when the package has been
installed on a system that _doesn't_ boot from a zfs filesystem.

Signed-off-by: Jeremy Gill <jgill@parallax-innovations.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #377

12 years agoFix zfs.spec.in to use @LICENSE@ variable
Prakash Surya [Thu, 25 Aug 2011 22:20:25 +0000 (15:20 -0700)]
Fix zfs.spec.in to use @LICENSE@ variable

The zfs.spec.in file had the license field hard coded to specify the
CDDL. This was changed to use the @LICENSE@ variable, maintaining
consistency with the zfs-modules.spec.in file.

Signed-off-by: Prakash Surya <surya1@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
12 years agoFix package URLs to use the github repository
Prakash Surya [Thu, 25 Aug 2011 22:09:24 +0000 (15:09 -0700)]
Fix package URLs to use the github repository

The URL field in the zfs-modules and zfs package spec files were
updated to point to the ZFS on Linux repository hosted by github.

Signed-off-by: Prakash Surya <surya1@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
12 years agoConvert 'if' statements to AS_IF in kernel.m4
Prakash Surya [Wed, 24 Aug 2011 16:52:16 +0000 (09:52 -0700)]
Convert 'if' statements to AS_IF in kernel.m4

The 'if' statements found in kernel.m4 were converted to use the
portable alternative provided by autoconf, the AS_IF macro.

Signed-off-by: Prakash Surya <surya1@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
12 years agoFix minor autoconf error message inconsistencies
Prakash Surya [Wed, 24 Aug 2011 16:23:44 +0000 (09:23 -0700)]
Fix minor autoconf error message inconsistencies

A few of the autoconf error messages were inconsistent with the rest of
the build system. To be specific, the inconsistencies addressed by this
commit are the following:

 * The second line of the error message for the CONFIG_PREEMPT check
   was missing it's third asterisk.

 * A few of the error messages were prefixed by two tabs, whereas the
   majority of error messages are only prefixed by a single tab.

Signed-off-by: Prakash Surya <surya1@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
12 years agoPPA 0.6.0.31-0ubuntu2 release.
Darik Horn [Wed, 24 Aug 2011 15:22:16 +0000 (10:22 -0500)]
PPA 0.6.0.31-0ubuntu2 release.

12 years agoChange $ZFS to `zfs` in the init script.
Darik Horn [Wed, 24 Aug 2011 15:01:17 +0000 (10:01 -0500)]
Change $ZFS to `zfs` in the init script.

Fix a typo caused by a partial manual merge of the upstream
etc/init.d/zfs.lsb.in file into the debian/zfsutils.zfs.init file.

12 years agoPPA 0.6.0.31-0ubuntu1 release.
Darik Horn [Tue, 23 Aug 2011 02:28:23 +0000 (21:28 -0500)]
PPA 0.6.0.31-0ubuntu1 release.

12 years agoMerge branch 'upstream'
Darik Horn [Tue, 23 Aug 2011 02:25:38 +0000 (21:25 -0500)]
Merge branch 'upstream'

12 years agoRemove ellipses from log lines in the init script.
Darik Horn [Tue, 23 Aug 2011 02:19:40 +0000 (21:19 -0500)]
Remove ellipses from log lines in the init script.

The /lib/lsb/init-functions automatically apply formatting like this
according to the preferred style of the host system.

12 years agoShare filesystems in the init script.
Darik Horn [Tue, 23 Aug 2011 02:17:15 +0000 (21:17 -0500)]
Share filesystems in the init script.

Run `zfs share -a` after running `zfs mount -a` to export ZFS
filesystems by NFS automatically.

12 years agoImplement the status command in the init script.
Darik Horn [Tue, 23 Aug 2011 01:31:03 +0000 (20:31 -0500)]
Implement the status command in the init script.

Do this to better reflect the upstream etc/init.d/zfs.lsb.in script.

12 years agoDisable default start action in the init script.
Darik Horn [Fri, 19 Aug 2011 22:21:21 +0000 (17:21 -0500)]
Disable default start action in the init script.

This behavior originated in an import from the KQ repository.  Change
it because the convention on Linux systems is to print the usage
message.

12 years agoFix incorrect zpool_cache substitution
Brian Behlendorf [Mon, 22 Aug 2011 22:58:54 +0000 (15:58 -0700)]
Fix incorrect zpool_cache substitution

This regression was accidentally introduced by commit aa2b489.
I was attempting to simplify the init scripts and accidentally
confused the /etc/init.d and /etc/zfs paths.  This change reverts
the init script modifications.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #370

12 years agoMerge branch 'udev'
Brian Behlendorf [Mon, 22 Aug 2011 16:25:30 +0000 (09:25 -0700)]
Merge branch 'udev'

Merge the remaining udev restructuring changes and cleanup.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Kyle Fuller <inbox@kylefuller.co.uk>
Signed-off-by: Zachary Bedell <zac@thebedells.org>
Closes #356

12 years agoFix autoconf variable substitution in init scripts.
Brian Behlendorf [Tue, 9 Aug 2011 23:49:18 +0000 (16:49 -0700)]
Fix autoconf variable substitution in init scripts.

Change the variable substitution in the init script templates
according to the method described in the Autoconf manual;
Chapter 4.7.2: Installation Directory Variables.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
12 years agoMake dracut module-setup.sh an autoconf config file
Kyle Fuller [Tue, 9 Aug 2011 21:39:47 +0000 (22:39 +0100)]
Make dracut module-setup.sh an autoconf config file

This ensures that module-setup.sh script will always be able to
install the required dracut components regardless of how the zfs
package was configured.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
12 years agoMove 90-zfs udev rule from dracut to udev/rules.d
Kyle Fuller [Sat, 6 Aug 2011 17:28:16 +0000 (18:28 +0100)]
Move 90-zfs udev rule from dracut to udev/rules.d

This rule does not need to be dracut specific.  Automatically loading
the zfs module stack when a zfs device is detected is usually desirable.
My only concern is that this might cause trouble for large pools where
we don't want to automatically import the pool until all the disks are
available.  However, we'll cross that bridge when we come to it.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
12 years agoBuildbot suppression rules
Brian Behlendorf [Tue, 2 Aug 2011 20:20:00 +0000 (13:20 -0700)]
Buildbot suppression rules

The warnings listed in the suppression file will be suppressed
and not flagged during regular buildbot builds.  These warnings
are expected, harmless, and can obscure real issues unless they
are suppressed.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
12 years agoFixed uninitialized variable
Brian Behlendorf [Fri, 19 Aug 2011 23:24:04 +0000 (16:24 -0700)]
Fixed uninitialized variable

This warning was accidentally introduced by commit
b7936d5c2337bc976ac831c1c38de563844c36b.  The fix is to
simply initialize the variable to ZFS_DELEG_WHO_UNKNOWN.

  cmd/zfs/zfs_main.c:4460:25: warning: 'who_type' may be
  used uninitialized in this function

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
12 years agoAdd chkconfig and description lines to zfs init.
Darik Horn [Fri, 19 Aug 2011 22:15:44 +0000 (17:15 -0500)]
Add chkconfig and description lines to zfs init.

12 years agoFix missing format arguments
Brian Behlendorf [Fri, 19 Aug 2011 22:12:44 +0000 (15:12 -0700)]
Fix missing format arguments

These warnings were accidentally introduced by commit
b7936d5c2337bc976ac831c1c38de563844c36b.  The fix is to
simply add the missing format specifier.

  cmd/zfs/zfs_main.c:4565: warning: format not a string
  literal and no format arguments

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
12 years agoFix incompatible pointer type warning
Brian Behlendorf [Fri, 19 Aug 2011 21:49:49 +0000 (14:49 -0700)]
Fix incompatible pointer type warning

This warning was accidentally introduced by commit
f3ab88d6461dec46dea240763843f66300facfab which updated the
.readpages() implementation.  The fix is to simply cast
the helper function to the appropriate type when passed.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
12 years agoMerge branch 'upstream'
Darik Horn [Fri, 19 Aug 2011 20:22:46 +0000 (15:22 -0500)]
Merge branch 'upstream'

12 years agoDisable zfs /etc/mtab updates
Brian Behlendorf [Thu, 21 Jul 2011 19:39:42 +0000 (12:39 -0700)]
Disable zfs /etc/mtab updates

Completely disable the zfs binary from attempting to directly update
/etc/mtab.  The Linux port relies entirely on the mount.zfs helper
to safely update /etc/mtab.  If we left the /etc/mtab updates to
the zfs binary then they could race with concurrent non-zfs mounts.
Routing everything through the system mount command ensures the
/etc/mtab updates are locked properly.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #329

12 years agoPPA 0.6.0.30-0ubuntu2 release.
Darik Horn [Tue, 9 Aug 2011 21:53:47 +0000 (16:53 -0500)]
PPA 0.6.0.30-0ubuntu2 release.

12 years agoLet mkinitramfs fail if the utilities are missing.
Darik Horn [Tue, 9 Aug 2011 21:33:05 +0000 (16:33 -0500)]
Let mkinitramfs fail if the utilities are missing.

The zfs-initramfs package directly depends on the zfsutils package,
so utilities in the COPY_EXEC_LIST should always be available.

Unlike some other initramfs hooks, we aren't currently detecting
whether anything in /sbin is actually necessary to start the system,
and the earlier behavior obscured a packaging mistake.

12 years agoRemove zpool_layout from the initramfs manifest.
Darik Horn [Tue, 9 Aug 2011 20:37:17 +0000 (15:37 -0500)]
Remove zpool_layout from the initramfs manifest.

The zpool_layout script is not required to boot a system with a
native ZFS root filesystem.

12 years agoPPA 0.6.0.30-0ubuntu1 release.
Darik Horn [Tue, 9 Aug 2011 06:18:29 +0000 (01:18 -0500)]
PPA 0.6.0.30-0ubuntu1 release.

12 years agoAccomodate udev autotools changes in packaging.
Darik Horn [Tue, 9 Aug 2011 06:00:45 +0000 (01:00 -0500)]
Accomodate udev autotools changes in packaging.

Change the configure parameter from --prefix='/' to --prefix='' in
the rules file.

Remove the /etc/udev/rules.d path in the install file.

See commits:

  SHA: 12d06bac9b22b11d8a322dfea4bdb50b106c254f
  SHA: de0a1c099b7dc6722eb428838e893a4d9490a21e

12 years agoRefresh patches.
Darik Horn [Tue, 9 Aug 2011 05:56:22 +0000 (00:56 -0500)]
Refresh patches.

12 years agoMerge branch 'upstream'
Darik Horn [Tue, 9 Aug 2011 05:47:01 +0000 (00:47 -0500)]
Merge branch 'upstream'

12 years agoImprove HAVE_EVICT_INODE check
Brian Behlendorf [Fri, 5 Aug 2011 23:55:04 +0000 (16:55 -0700)]
Improve HAVE_EVICT_INODE check

The hardened gentoo kernel defines all of the super block
operation callbacks as const.  This prevents the autoconf test
from assigning the callback and results in a false negative.
By moving the assignment in to the declaration we can avoid
this issue and get a correct result for this patched kernel.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #296

12 years agoAutogen refresh for udev changes
Brian Behlendorf [Mon, 8 Aug 2011 21:50:36 +0000 (14:50 -0700)]
Autogen refresh for udev changes

Run autogen.sh using the same autotools versions as upstream:

 * autoconf-2.63
 * automake-1.11.1
 * libtool-2.2.6b

12 years agoMove udev rules from /etc/udev to /lib/udev
Kyle Fuller [Fri, 5 Aug 2011 19:22:58 +0000 (20:22 +0100)]
Move udev rules from /etc/udev to /lib/udev

This change moves the default install location for the zfs udev
rules from /etc/udev/ to /lib/udev/.  The correct convention is
for rules provided by a package to be installed in /lib/udev/.
The /etc/udev/ directory is reserved for custom rules or local
overrides.

Additionally, this patch cleans up some abuse of the bindir install
location by adding a udevdir and udevruledir install directories.
This allows us to revert to the default bin install location.  The
udev install directories can be set with the following new options.

  --with-udevdir=DIR      install udev helpers [EPREFIX/lib/udev]
  --with-udevruledir=DIR  install udev rules [UDEVDIR/rules.d]

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #356

12 years agoCorrectly lock pages for .readpages()
Brian Behlendorf [Thu, 4 Aug 2011 23:25:43 +0000 (16:25 -0700)]
Correctly lock pages for .readpages()

Unlike the .readpage() callback which is passed a single locked page
to be populated.  The .readpages() callback is passed a list of unlocked
pages which are all marked for read-ahead (PG_readahead set).  It is
the responsibly of .readpages() to ensure to pages are properly locked
before being populated.

Prior to this change the requested read-ahead pages would be updated
outside of the page lock which is unsafe.  The unlocked pages would then
be unlocked again which is harmless but should have been immediately
detected as bug.  Unfortunately, newer kernels failed detect this issue
because the check is done with a VM_BUG_ON which is disabled by default.
Luckily, the old Debian Lenny 2.6.26 kernel caught this because it
simply uses a BUG_ON.

The straight forward fix for this is to update the .readpages() callback
to use the read_cache_pages() helper function.  The helper function will
ensure that each page in the list is properly locked before it is passed
to the .readpage() callback.  In addition resolving the bug, this results
in a nice simplification of the existing code.

The downside to this change is that instead of passing one large read
request to the dmu multiple smaller ones are submitted.  All of these
requests however are marked for readahead so the lower layers should
issue a large I/O regardless.  Thus most of the request should hit the
ARC cache.

Futher optimization of this code can be done in the future is a perform
analysis determines it to be worthwhile.  But for the moment, it is
preferable that code be correct and understandable.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #355

12 years agoAdd backing_device_info per-filesystem
Brian Behlendorf [Tue, 2 Aug 2011 01:24:40 +0000 (18:24 -0700)]
Add backing_device_info per-filesystem

For a long time now the kernel has been moving away from using the
pdflush daemon to write 'old' dirty pages to disk.  The primary reason
for this is because the pdflush daemon is single threaded and can be
a limiting factor for performance.  Since pdflush sequentially walks
the dirty inode list for each super block any delay in processing can
slow down dirty page writeback for all filesystems.

The replacement for pdflush is called bdi (backing device info).  The
bdi system involves creating a per-filesystem control structure each
with its own private sets of queues to manage writeback.  The advantage
is greater parallelism which improves performance and prevents a single
filesystem from slowing writeback to the others.

For a long time both systems co-existed in the kernel so it wasn't
strictly required to implement the bdi scheme.  However, as of
Linux 2.6.36 kernels the pdflush functionality has been retired.

Since ZFS already bypasses the page cache for most I/O this is only
an issue for mmap(2) writes which must go through the page cache.
Even then adding this missing support for newer kernels was overlooked
because there are other mechanisms which can trigger writeback.

However, there is one critical case where not implementing the bdi
functionality can cause problems.  If an application handles a page
fault it can enter the balance_dirty_pages() callpath.  This will
result in the application hanging until the number of dirty pages in
the system drops below the dirty ratio.

Without a registered backing_device_info for the filesystem the
dirty pages will not get written out.  Thus the application will hang.
As mentioned above this was less of an issue with older kernels because
pdflush would eventually write out the dirty pages.

This change adds a backing_device_info structure to the zfs_sb_t
which is already allocated per-super block.  It is then registered
when the filesystem mounted and unregistered on unmount.  It will
not be registered for mounted snapshots which are read-only.  This
change will result in flush-<pool> thread being dynamically created
and destroyed per-mounted filesystem for writeback.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #174

12 years agoCleanup mmap(2) writes
Brian Behlendorf [Tue, 2 Aug 2011 04:28:51 +0000 (21:28 -0700)]
Cleanup mmap(2) writes

While the existing implementation of .writepage()/zpl_putpage() was
functional it was not entirely correct.  In particular, it would move
dirty pages in to a clean state simply after copying them in to the
ARC cache.  This would result in the pages being lost if the system
were to crash enough though the Linux VFS believed them to be safe on
stable storage.

Since at the moment virtually all I/O, except mmap(2), bypasses the
page cache this isn't as bad as it sounds.  However, as hopefully
start using the page cache more getting this right becomes more
important so it's good to improve this now.

This patch takes a big step in that direction by updating the code
to correctly move dirty pages through a writeback phase before they
are marked clean.  When a dirty page is copied in to the ARC it will
now be set in writeback and a completion callback is registered with
the transaction.  The page will stay in writeback until the dmu runs
the completion callback indicating the page is on stable storage.
At this point the page can be safely marked clean.

This process is normally entirely asynchronous and will be repeated
for every dirty page.  This may initially sound inefficient but most
of these pages will end up in a few txgs.  That means when they are
eventually written to disk they should be nicely batched.  However,
there is room for improvement.  It may still be desirable to batch
up the pages in to larger writes for the dmu.  This would reduce
the number of callbacks and small 4k buffer required by the ARC.

Finally, if the caller requires that the I/O be done synchronously
by setting WB_SYNC_ALL or if ZFS_SYNC_ALWAYS is set.  Then the I/O
will trigger a zil_commit() to flush the data to stable storage.
At which point the registered callbacks will be run leaving the
date safe of disk and marked clean before returning from .writepage.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
12 years agoPPA 0.6.0.29-0ubuntu1 release.
Darik Horn [Tue, 2 Aug 2011 15:21:25 +0000 (10:21 -0500)]
PPA 0.6.0.29-0ubuntu1 release.

12 years agoRefresh debian/patches.
Darik Horn [Tue, 2 Aug 2011 15:13:00 +0000 (10:13 -0500)]
Refresh debian/patches.

12 years agoMerge branch 'upstream'
Darik Horn [Tue, 2 Aug 2011 15:12:16 +0000 (10:12 -0500)]
Merge branch 'upstream'

12 years agoUse libzfs_run_process() in libshare.
Gunnar Beutner [Fri, 29 Jul 2011 08:17:50 +0000 (10:17 +0200)]
Use libzfs_run_process() in libshare.

This should simplify the code a bit by re-using existing code
to fork and exec a process.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #190

12 years agoUse /dev/null for stdout/stderr in libzfs_run_process().
Gunnar Beutner [Fri, 29 Jul 2011 08:17:46 +0000 (10:17 +0200)]
Use /dev/null for stdout/stderr in libzfs_run_process().

Simply closing the stdout and/or stderr file descriptors for
the child process can have bad side effects if for example
the child writes to stdout/stderr after open()ing a file.
The open() call might have returned the same file descriptor
one would usually expect for stdout/stderr (1 and 2), thereby
causing mis-directed writes.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #190

12 years agoCall exportfs -v once for NFS shares.
James H [Tue, 26 Jul 2011 10:47:20 +0000 (11:47 +0100)]
Call exportfs -v once for NFS shares.

At the moment we call exportfs -v every time we check whether an
NFS share is active. This happens every time you run a zfs or
zpool command, making them extremely slow when you have a lot of
exports. The time taken is approx O(n2) of the number of shares.

This commit stores the output from exportfs -v in a temporary file
and use this to speed up subsequent accesses.

This mechanism is still too slow - if you have tens of thousands
of NFS shares it will still be painful running ANY zfs/zpool
command.

Signed-off-by: Gunnar Beutner <gunnar@beutner.name>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #341

12 years agoMerge branch 'illumos'
Brian Behlendorf [Mon, 1 Aug 2011 19:10:54 +0000 (12:10 -0700)]
Merge branch 'illumos'

Merge in ten upstream fixes which have already been made to both
the Illumos and FreeBSD ZFS implementations.  This brings us up
to date with the latest ZFS changes in Illumos.

Credit goes to Martin Matuska of the FreeBSD project for posting
an excellent summary of the upstream patches we were missing.

Illumos #1313: Integer overflow in txg_delay()
Illumos #278:  get rid zfs of python and pyzfs dependencies
Illumos #1043: Recursive zfs snapshot destroy fails
Illumos #883:  ZIL reuse during remount corruption
Illumos #1092: zfs refratio property
Illumos #1051: zfs should handle
Illumos #510:  'zfs get' enhancement - mountpoint as an argument
Illumos #175:  zfs vdev cache consumes excessive memory
Illumos #764:  panic in zfs:dbuf_sync_list
Illumos #xxx:  zdb -vvv broken after zfs diff integration

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #340

12 years agoIllumos #1313: Integer overflow in txg_delay()
Martin Matuska [Mon, 1 Aug 2011 17:34:06 +0000 (10:34 -0700)]
Illumos #1313: Integer overflow in txg_delay()

The function txg_delay() is used to delay txg (transaction group)
threads in ZFS.  The timeout value for this function is calculated
using:

    int timeout = ddi_get_lbolt() + ticks;

Later, the actual wait is performed:

    while (ddi_get_lbolt() < timeout &&
        tx->tx_syncing_txg < txg-1 && !txg_stalled(dp))
            (void) cv_timedwait(&tx->tx_quiesce_more_cv, &tx->tx_sync_lock,
                timeout - ddi_get_lbolt());

The ddi_get_lbolt() function returns current uptime in clock ticks
and is typed as clock_t.  The clock_t type on 64-bit architectures
is int64_t.

The "timeout" variable will overflow depending on the tick frequency
(e.g. for 1000 it will overflow in 28.855 days). This will make the
expression "ddi_get_lbolt() < timeout" always false - txg threads will
not be delayed anymore at all. This leads to a slowdown in ZFS writes.

The attached patch initializes timeout as clock_t to match the return
value of ddi_get_lbolt().

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #352

12 years agoIllumos #278: get rid zfs of python and pyzfs dependencies
Alexander Stetsenko [Tue, 26 Jul 2011 22:44:36 +0000 (15:44 -0700)]
Illumos #278: get rid zfs of python and pyzfs dependencies

Remove all python and pyzfs dependencies for consistency and
to ensure full functionality even in a mimimalist environment.

Reviewed by: gordon.w.ross@gmail.com
Reviewed by: trisk@opensolaris.org
Reviewed by: alexander.r.eremin@gmail.com
Reviewed by: jerry.jelinek@joyent.com
Approved by: garrett@nexenta.com

References to Illumos issue and patch:
- https://www.illumos.org/issues/278
- https://github.com/illumos/illumos-gate/commit/1af68beac3

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #340
Issue #160

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
12 years agoIllumos #1043: Recursive zfs snapshot destroy fails
Martin Matuska [Tue, 26 Jul 2011 20:08:02 +0000 (13:08 -0700)]
Illumos #1043: Recursive zfs snapshot destroy fails

Prior to revision 11314 if a user was recursively destroying
snapshots of a dataset the target dataset was not required to
exist.  The zfs_secpolicy_destroy_snaps() function introduced
the security check on the target dataset, so since then if the
target dataset does not exist, the recursive destroy is not
performed.  Before 11314, only a delete permission check on
the snapshot's master dataset was performed.

Steps to reproduce:
zfs create pool/a
zfs snapshot pool/a@s1
zfs destroy -r pool@s1

Therefore I suggest to fallback to the old security check, if
the target snapshot does not exist and continue with the destroy.

References to Illumos issue and patch:
- https://www.illumos.org/issues/1043
- https://www.illumos.org/attachments/217/recursive_dataset_destroy.patch

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #340

12 years agoIllumos #883: ZIL reuse during remount corruption
Eric Schrock [Tue, 26 Jul 2011 19:41:53 +0000 (12:41 -0700)]
Illumos #883: ZIL reuse during remount corruption

Moving the zil_free() cleanup to zil_close() prevents this
problem from occurring in the first place.  There is a very
good description of the issue and fix in Illumus #883.

Reviewed by: Matt Ahrens <Matt.Ahrens@delphix.com>
Reviewed by: Adam Leventhal <Adam.Leventhal@delphix.com>
Reviewed by: Albert Lee <trisk@nexenta.com>
Reviewed by: Gordon Ross <gwr@nexenta.com>
Reviewed by: Garrett D'Amore <garrett@nexenta.com>
Reivewed by: Dan McDonald <danmcd@nexenta.com>
Approved by: Gordon Ross <gwr@nexenta.com>

References to Illumos issue and patch:
- https://www.illumos.org/issues/883
- https://github.com/illumos/illumos-gate/commit/c9ba2a43cb

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #340

12 years agoIllumos #1092: zfs refratio property
Matt Ahrens [Tue, 26 Jul 2011 19:23:00 +0000 (12:23 -0700)]
Illumos #1092: zfs refratio property

Add a "REFRATIO" property, which is the compression ratio based on
data referenced. For snapshots, this is the same as COMPRESSRATIO,
but for filesystems/volumes, the COMPRESSRATIO is based on the
data "USED" (ie, includes blocks in children, but not blocks
shared with the origin).

This is needed to figure out how much space a filesystem would
use if it were not compressed (ignoring snapshots).

Reviewed by: George Wilson <George.Wilson@delphix.com>
Reviewed by: Adam Leventhal <Adam.Leventhal@delphix.com>
Reviewed by: Dan McDonald <danmcd@nexenta.com>
Reviewed by: Richard Elling <richard.elling@richardelling.com>
Reviewed by: Mark Musante <Mark.Musante@oracle.com>
Reviewed by: Garrett D'Amore <garrett@nexenta.com>
Approved by: Garrett D'Amore <garrett@nexenta.com>

References to Illumos issue and patch:
- https://www.illumos.org/issues/1092
- https://github.com/illumos/illumos-gate/commit/187d6ac08a

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #340

12 years agoIllumos #1051: zfs should handle imbalanced luns
George Wilson [Tue, 26 Jul 2011 19:08:52 +0000 (12:08 -0700)]
Illumos #1051: zfs should handle imbalanced luns

Today zfs tries to allocate blocks evenly across all devices.
This means when devices are imbalanced zfs will use lots of
CPU searching for space on devices which tend to be pretty
full.  It should instead fail quickly on the full LUNs and
move onto devices which have more availability.

Reviewed by: Eric Schrock <Eric.Schrock@delphix.com>
Reviewed by: Matt Ahrens <Matt.Ahrens@delphix.com>
Reviewed by: Adam Leventhal <Adam.Leventhal@delphix.com>
Reviewed by: Albert Lee <trisk@nexenta.com>
Reviewed by: Gordon Ross <gwr@nexenta.com>
Approved by: Garrett D'Amore <garrett@nexenta.com>

References to Illumos issue and patch:
- https://www.illumos.org/issues/510
- https://github.com/illumos/illumos-gate/commit/5ead3ed965

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #340

12 years agoIllumos #510: 'zfs get' enhancement - mountpoint as an argument
Shampavman [Tue, 26 Jul 2011 18:53:09 +0000 (11:53 -0700)]
Illumos #510: 'zfs get' enhancement - mountpoint as an argument

The 'zfs get' command should be able to deal with mountpoint
as an argument.  It already works with 'zfs list' command:

  # zfs list /export/home/estibi
  NAME                       USED  AVAIL  REFER  MOUNTPOINT
  rpool/export/home/estibi  1.14G  3.86G  1.14G  /export/home/estibi

but it fails with 'zfs get':

  # zfs get all /export/home/estibi
  cannot open '/export/home/estibi': invalid dataset name

Reviewed by: Eric Schrock <eric.schrock@delphix.com>
Reviewed by: Deano <deano@rattie.demon.co.uk>
Reviewed by: Garrett D'Amore <garrett@nexenta.com>
Approved by: Garrett D'Amore <garrett@nexenta.com>

References to Illumos issue and patch:
- https://www.illumos.org/issues/510
- https://github.com/illumos/illumos-gate/commit/5ead3ed965

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #340

12 years agoIllumos #175: zfs vdev cache consumes excessive memory
Garrett D'Amore [Fri, 22 Apr 2011 07:49:41 +0000 (00:49 -0700)]
Illumos #175: zfs vdev cache consumes excessive memory

Note that with the current ZFS code, it turns out that the vdev
cache is not helpful, and in some cases actually harmful.  It
is better if we disable this.  Once some time has passed, we
should actually remove this to simplify the code.  For now we
just disable it by setting the zfs_vdev_cache_size to zero.
Note that Solaris 11 has made these same changes.

References to Illumos issue and patch:
- https://www.illumos.org/issues/175
- https://github.com/illumos/illumos-gate/commit/b68a40a845

Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Eric Schrock <eric.schrock@delphix.com>
Approved by: Richard Lowe <richlowe@richlowe.net>

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #340

12 years agoIllumos #764: panic in zfs:dbuf_sync_list
Gordon Ross [Tue, 26 Jul 2011 18:37:06 +0000 (11:37 -0700)]
Illumos #764: panic in zfs:dbuf_sync_list

Hypothesis about what's going on here.

At some time in the past, something, i.e. dnode_reallocate()
calls one of:
dbuf_rm_spill(dn, tx);

These will do:
dbuf_rm_spill(dnode_t *dn, dmu_tx_t *tx)
dbuf_free_range(dn, DMU_SPILL_BLKID, DMU_SPILL_BLKID, tx)
dbuf_undirty(db, tx)

Currently dbuf_undirty can leave a spill block in dn_dirty_records[],
(it having been put there previously by dbuf_dirty) and free it.
Sometime later, dbuf_sync_list trips over this reference to free'd
(and typically reused) memory.

Also, dbuf_undirty can call dnode_clear_range with a bogus
block ID. It needs to test for DMU_SPILL_BLKID, similar to
how dnode_clear_range is called in dbuf_dirty().

References to Illumos issue and patch:
- https://www.illumos.org/issues/764
- https://github.com/illumos/illumos-gate/commit/3f2366c2bb

Reviewed by: George Wilson <gwilson@zfsmail.com>
Reviewed by: Mark.Maybe@oracle.com
Reviewed by: Albert Lee <trisk@nexenta.com
Approved by: Garrett D'Amore <garrett@nexenta.com>

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #340

12 years agoIllumos #xxx: zdb -vvv broken after zfs diff integration
Tim Haley [Tue, 26 Jul 2011 23:38:27 +0000 (16:38 -0700)]
Illumos #xxx: zdb -vvv broken after zfs diff integration

References to Illumos issue and patch:
- https://github.com/illumos/illumos-gate/commit/163eb7ff

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #340

12 years agoAdd .gitignore for zfs.<distro> init scripts
Brian Behlendorf [Mon, 1 Aug 2011 17:27:54 +0000 (10:27 -0700)]
Add .gitignore for zfs.<distro> init scripts

Treat the automatically generated zfs.<distro> init scripts
as build products by adding them to a directory specific
.gitignore file.

12 years agoTurn the init.d scripts into autoconf config files
Kyle Fuller [Mon, 25 Jul 2011 00:00:53 +0000 (01:00 +0100)]
Turn the init.d scripts into autoconf config files

This change ensures the paths used by the provided init scripts
always reference the prefixes provided at configure time.  The
@sbindir@ and @sysconfdir@ prefixes will be correctly replaced
at build time.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #336

12 years agoWrap dracut scripts to 79 chars
Zachary Bedell [Sun, 31 Jul 2011 04:21:40 +0000 (00:21 -0400)]
Wrap dracut scripts to 79 chars

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #347

12 years agoMake autogen.sh executable
Kyle Fuller [Mon, 25 Jul 2011 00:36:37 +0000 (01:36 +0100)]
Make autogen.sh executable

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
12 years agoPPA 0.6.0.28-0ubuntu2 release.
Darik Horn [Tue, 26 Jul 2011 05:04:17 +0000 (00:04 -0500)]
PPA 0.6.0.28-0ubuntu2 release.

12 years agoUpdate replacement controls for libzfs-dev.
Darik Horn [Tue, 26 Jul 2011 04:57:13 +0000 (23:57 -0500)]
Update replacement controls for libzfs-dev.

The "lintian: non-dev-pkg-with-shlib-symlink" commit was incomplete
(SHA: 863a65c343cbb1c6c3c62d3071fa84ac2981b85c) because the
libzfs-dev package must be allowed to replace the /lib/*.so
symlinks.

Also remove instances of the obsolete zfs-lib package.

12 years agoPPA 0.6.0.28-0ubuntu1 release.
Darik Horn [Tue, 26 Jul 2011 04:39:50 +0000 (23:39 -0500)]
PPA 0.6.0.28-0ubuntu1 release.