Commit Graph

20501 Commits

Author SHA1 Message Date
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
Brian Behlendorf b2c62c2caa Merge branch 'linux-zpios' into refs/top-bases/linux-zfs-branch 2010-07-28 16:47:05 -07:00
Brian Behlendorf 1ae7c424cf Generate common.sh with paths from configure
These are the zpios related changes which were part of common.sh.
2010-07-28 16:42:16 -07:00
Brian Behlendorf 9415f65884 Merge branch 'linux-have-mlslabel' into refs/top-bases/linux-zfs-branch 2010-07-28 16:41:31 -07:00
Brian Behlendorf 7bc0b67522 Merge commit 'refs/top-bases/linux-have-mlslabel' into linux-have-mlslabel 2010-07-28 16:41:29 -07:00
Brian Behlendorf aee3a32291 Merge branch 'linux-spa-thread' into refs/top-bases/linux-zfs-branch 2010-07-28 16:41:23 -07:00
Brian Behlendorf 7d9924000b Merge commit 'refs/top-bases/linux-spa-thread' into linux-spa-thread 2010-07-28 16:41:21 -07:00
Brian Behlendorf b11cf27d2d Merge branch 'linux-topology' into refs/top-bases/linux-zfs-branch 2010-07-28 16:41:14 -07:00