Commit Graph

20608 Commits

Author SHA1 Message Date
Brian Behlendorf 5545adeadf Use sparse files for loopback+file configurations
Using sparse files for the test configurations had atleast three
significant advantages.

1) Actually test sparse files to ensure they work.
2) Drastically reduce required disk space for the regression test
   suite.  This turns out to be fairly important when running the
   test suite in a virtualized environment.
3) Significantly speed of the test suite.  Run time of zconfig.sh
   dropped from 2m:56s to 1m:00s on my test system, zpios-sanity.sh
   nows runs in only 0m:26s.
2010-08-02 13:16:41 -07:00
Brian Behlendorf 858985a46e Update zconfig.sh
This change updates zconfig.sh to reference /dev/zvol/ instead
of simply /dev/.  It also extends the texts to verify correct
minor device creation for import/export and module load/unload.
2010-08-02 13:15:00 -07:00
Ricardo M. Correia 4ca4dfe9bb Fix taskq_dispatch() call in zio_taskq_dispatch().
The feature branch 'fix-taskq' in Linux's ZFS tree changes the taskq_dispatch()
flag from TQ_SLEEP to TQ_NOSLEEP to avoid sleeping in some circumstances.

However, this has the side effect that taskq_dispatch() now may fail, and since
the return code was not even being checked, it could lead to zio's not being
scheduled to execute.

I'm fixing this in a simplistic but not very elegant way, by just looping until
taskq_dispatch() succeeds.

Signed-off-by: Ricardo M. Correia <ricardo.correia@oracle.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
2010-08-02 13:12:54 -07:00
Brian Behlendorf b39593040c Merge branch 'linux-user-disk' into refs/top-bases/linux-zfs-branch 2010-08-02 12:54:57 -07:00
Brian Behlendorf f58729aa42 Merge branch 'linux-kernel-disk' into refs/top-bases/linux-zfs-branch 2010-08-02 12:54:55 -07:00
Brian Behlendorf dd9a55895a Revert zconfig.sh test 4
This test was accidentally readded to the linux-kernel-disk
topic branch.  It is being reverted so it can be reapplied with
a few minor tweaks in the right place.
2010-08-02 11:53:38 -07:00
Brian Behlendorf 7195d18e6a Reduce stack using in ZVOL
The dmu_object_info_t structures which are roughly 60 bytes
have been moved from the stack to the heap.  Every little
bit helps and there's absolutely no reason these temporary
working variables need to be on the stack.
2010-08-02 11:51:21 -07:00
Brian Behlendorf 88b37fbe57 Fix zvol_init() lock inversion
During module load we could deadlock because the zvol_init()
callpath took the spa_namespace_lock before the zvol_state_lock.
The rest of the zvol code takes the locks in the opposite order.
In particular, I observed the following deadlock cause by the
lock inversion.

I've fixed the ording by creating an unlocked version of
zvol_create_minor and zvol_remove_minor.  This allows me to
take the zvol_state_lock before the spa_namespace_lock in
zvol_cr_minors_common and simply call the unlocked version.
2010-08-02 11:50:04 -07:00
Brian Behlendorf f162433deb Minor device creation/removal (Kernel)
With the update to onnv_141 how minor devices were created and
removed for ZVOL was substantially changed.  The updated system
is much more tightly integrated with Solaris's /dev/ filesystem.
This is great for Solaris but bad for Linux.

On the kernel side the ZFS_IOC_{CREATE,REMOVE}_MINOR ioctl
entry points have been re-added.  They now call directly in
to the ZVOL to create the needed minor node and add the sysfs
entried for udev.

Also as part of this change I've decided it would really be
best if all the zvols were in a /dev/zvol directory like on
Solaris.  Organizationally this makes sense and on the code
side it allows us to know a block device is a zvol simply by
where it is located in /dev/.  Unless Solaris there still is
to ./dsk or ./rdsk as part of the path.
2010-08-02 11:49:08 -07:00
Brian Behlendorf 097150e1b7 Minor device creation/removal (User)
With the update to onnv_141 how minor devices were created and
removed for ZVOL was substantially changed.  The updated system
is much more tightly integrated with Solaris's /dev/ filesystem.
This is great for Solaris but bad for Linux.

This patch keeps as much of those changes as possible which as
useful for Linux.  But it also reverts back to use the old system
of explicit minor node creation via a decicated ioctl().  This
worked well in zfs-0.4.9 and it should continue to work well.
2010-08-02 11:37:29 -07:00
Brian Behlendorf cce6c15ebb Merge branch 'linux-have-mlslabel' into refs/top-bases/linux-zfs-branch 2010-07-28 16:54:45 -07:00
Brian Behlendorf d8f780262e Merge commit 'refs/top-bases/linux-have-mlslabel' into linux-have-mlslabel 2010-07-28 16:54:42 -07:00
Brian Behlendorf a0ef674bfd Merge branch 'linux-spa-thread' into refs/top-bases/linux-zfs-branch 2010-07-28 16:54:37 -07:00
Brian Behlendorf 87a17cef31 Merge commit 'refs/top-bases/linux-spa-thread' into linux-spa-thread 2010-07-28 16:54:35 -07:00
Brian Behlendorf 58286831bc Merge branch 'linux-topology' into refs/top-bases/linux-zfs-branch 2010-07-28 16:54:30 -07:00
Brian Behlendorf ea58cd4fd1 Merge commit 'refs/top-bases/linux-topology' into linux-topology 2010-07-28 16:54:28 -07:00
Brian Behlendorf b3f4f205be Merge branch 'linux-sha2' into refs/top-bases/linux-zfs-branch 2010-07-28 16:54:22 -07:00
Brian Behlendorf 82b0375bc3 Merge commit 'refs/top-bases/linux-sha2' into linux-sha2 2010-07-28 16:54:20 -07:00
Brian Behlendorf 2c1217ebec Merge branch 'linux-user-util' into refs/top-bases/linux-zfs-branch 2010-07-28 16:54:15 -07:00
Brian Behlendorf d28af38584 Merge commit 'refs/top-bases/linux-user-util' into linux-user-util 2010-07-28 16:54:13 -07:00
Brian Behlendorf 12101700f6 Merge branch 'linux-events' into refs/top-bases/linux-zfs-branch 2010-07-28 16:54:07 -07:00
Brian Behlendorf 2abf4b2f95 Merge commit 'refs/top-bases/linux-events' into linux-events 2010-07-28 16:54:05 -07:00
Brian Behlendorf 72f572d4a5 Merge branch 'linux-kernel-module' into refs/top-bases/linux-zfs-branch 2010-07-28 16:54:00 -07:00
Brian Behlendorf 2c0f0b6068 Merge commit 'refs/top-bases/linux-kernel-module' into linux-kernel-module 2010-07-28 16:53:58 -07:00
Brian Behlendorf c62a9b1b23 Merge branch 'linux-kernel-device' into refs/top-bases/linux-zfs-branch 2010-07-28 16:53:52 -07:00
Brian Behlendorf 716f7686d2 Merge commit 'refs/top-bases/linux-kernel-device' into linux-kernel-device 2010-07-28 16:53:50 -07:00
Brian Behlendorf 1e8051df24 Merge branch 'linux-have-idmap' into refs/top-bases/linux-zfs-branch 2010-07-28 16:53:45 -07:00
Brian Behlendorf d2433c49c8 Merge commit 'refs/top-bases/linux-have-idmap' into linux-have-idmap 2010-07-28 16:53:42 -07:00
Brian Behlendorf 4fee3fef73 Merge branch 'linux-ztest' into refs/top-bases/linux-zfs-branch 2010-07-28 16:53:37 -07:00
Brian Behlendorf c9fbcee930 Merge commit 'refs/top-bases/linux-ztest' into linux-ztest 2010-07-28 16:53:35 -07:00
Brian Behlendorf 277c60c8ae Merge branch 'linux-unused' into refs/top-bases/linux-zfs-branch 2010-07-28 16:53:29 -07:00
Brian Behlendorf d2b7aac08f Merge commit 'refs/top-bases/linux-unused' into linux-unused 2010-07-28 16:53:27 -07:00
Brian Behlendorf 977b388a87 Merge branch 'linux-libspl' into refs/top-bases/linux-zfs-branch 2010-07-28 16:53:21 -07:00
Brian Behlendorf 2e29d1936d Merge commit 'refs/top-bases/linux-libspl' into linux-libspl 2010-07-28 16:53:19 -07:00
Brian Behlendorf 795e970d78 Merge branch 'linux-zpios' into refs/top-bases/linux-zfs-branch 2010-07-28 16:53:13 -07:00
Brian Behlendorf 7611c3a368 Merge commit 'refs/top-bases/linux-zpios' into linux-zpios 2010-07-28 16:53:11 -07:00
Brian Behlendorf 6524fae4a4 Merge branch 'linux-user-disk' into refs/top-bases/linux-zfs-branch 2010-07-28 16:53:06 -07:00
Brian Behlendorf 1e4fb7391c Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk 2010-07-28 16:53:03 -07:00
Brian Behlendorf 31bfaa3d9e Merge branch 'linux-symbol-collisions' into refs/top-bases/linux-zfs-branch 2010-07-28 16:52:58 -07:00
Brian Behlendorf c4f40de1a7 Merge commit 'refs/top-bases/linux-symbol-collisions' into linux-symbol-collisions 2010-07-28 16:52:56 -07:00
Brian Behlendorf 2265bea6dd Merge branch 'linux-kernel-mem' into refs/top-bases/linux-zfs-branch 2010-07-28 16:52:49 -07:00
Brian Behlendorf e01317ed8c Merge commit 'refs/top-bases/linux-kernel-mem' into linux-kernel-mem 2010-07-28 16:52:47 -07:00
Brian Behlendorf b6e5a26537 Merge branch 'linux-kernel-disk' into refs/top-bases/linux-zfs-branch 2010-07-28 16:52:40 -07:00
Brian Behlendorf 96ae916dbe Merge commit 'refs/top-bases/linux-kernel-disk' into linux-kernel-disk 2010-07-28 16:52:38 -07:00
Brian Behlendorf 4e111a5126 Merge branch 'linux-have-spl-debug' into refs/top-bases/linux-zfs-branch 2010-07-28 16:52:31 -07:00
Brian Behlendorf 5b1ade4b61 Merge commit 'refs/top-bases/linux-have-spl-debug' into linux-have-spl-debug 2010-07-28 16:52:29 -07:00
Brian Behlendorf 1f1212fc5f Merge branch 'linux-have-mntent' into refs/top-bases/linux-zfs-branch 2010-07-28 16:52:22 -07:00
Brian Behlendorf 61bba3bcd8 Merge commit 'refs/top-bases/linux-have-mntent' into linux-have-mntent 2010-07-28 16:52:20 -07:00
Brian Behlendorf 1510a95acd Add splat module to zfs.sh script
The splat module is only needed for the spl regression tests.
But if we add it to MODULES then 'zfs.sh -u' will be able to
unload it if needed,  The downside if 'zfs.sh' will always
load it but it's overhead is minimal and in a production
setting you'll always be doing a 'modprobe zfs' anyway so
this is really just for testing.
2010-07-28 16:47:30 -07:00
Brian Behlendorf 9662934bd9 Add uninstall Makefile targets
Extend the Makefiles with an uninstall target to cleanly
remove a package which was installed with 'make install'.

Additionally, ensure a 'depmod -a' is run as part of the
install to update the module dependency information.
2010-07-28 16:47:26 -07:00