Commit Graph

1261 Commits

Author SHA1 Message Date
Brian Behlendorf c4726e7ad2 Merge branch 'linux-user-disk' into refs/top-bases/linux-zfs-branch 2009-10-14 16:32:16 -07:00
Brian Behlendorf 992be351d5 Changes required to integrate libefi in to Linux.
The major change here is to fix up libefi to be linux aware.  For
the most part this wasn't too hard but there were a few major issues.

First off I needed to handle the DKIOCGMEDIAINFO and DKIOCINFO ioctls.
There is no direct equivilant for these ioctls under linux.  To handle
this I added wrapper functions which under Solaris simple call the ioctls.
But under Linux dig around the system a little bit getting the needed
info to fill in the requested structures.

Secondly the efi_ioctl() call was adapted such that under linux it directly
read or writes out the partition table.  Under Solaris this work was
handed off to the kernel via an ioctl.  In the efi_write() case we also
ensure we prompt the kernel via BLKRRPART to re-scan the new partition
table.  The libefi generated partition tables are correct but older
versions of ~parted-1.8.1 can not read them without a small patch.
The kernel and fdisk are able to read them just fine.

Thirdly efi_alloc_and_init() which is used by zpool to determine if a
device is a 'wholedisk' was updated to be linux aware.  This check is
performed by using the partition number for the device, which the
partition number is 0 on linux it is a 'wholedisk'.  However, certain
device type such as the loopback and ram disks needed to be excluded
because they do not support partitioning.

Forthly the zpool command was made symlink aware so it can correctly
resolve udev entries such as /dev/disk/by-*/*.  This symlinks are
fully expanded ensuring all block devices are recognized.  When a
when a 'wholedisk' block device is detected we now properly write
out an efi label and place zfs in the first partition (0th slice).
This partition is created 1MiB in to the disk to ensure it is aligned
nicely with all high end block devices I'm aware of.

This all works for me now but it did take quite a bit of work to get
it all sorted out.  It would not surprise me if certain special cases
were missed so we should keep any eye of for any odd behavior.
2009-10-14 16:07:48 -07:00
Brian Behlendorf c56b485f66 Merge commit 'refs/top-bases/linux-have-zpl' into linux-have-zpl 2009-10-14 15:59:26 -07:00
Brian Behlendorf f4f805a70e Merge branch 'linux-libspl' into refs/top-bases/linux-zfs-branch 2009-10-14 15:59:13 -07:00
Brian Behlendorf 84ed1fee34 Merge commit 'refs/top-bases/linux-libspl' into linux-libspl 2009-10-14 15:59:11 -07:00
Brian Behlendorf 245e7692f7 Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk 2009-10-14 15:58:55 -07:00
Brian Behlendorf 3cbe396819 Merge commit 'refs/top-bases/linux-have-zvol' into linux-have-zvol 2009-10-14 15:58:16 -07:00
Brian Behlendorf aa587c8437 Merge branch 'linux-docs' into refs/top-bases/linux-zfs-branch 2009-10-14 15:57:13 -07:00
Brian Behlendorf 085ed9fe82 Merge commit 'refs/top-bases/zfs-branch' into zfs-branch 2009-10-14 15:57:10 -07:00
Brian Behlendorf cb678c0b31 Merge branch 'gcc-branch' into refs/top-bases/zfs-branch 2009-10-14 15:57:09 -07:00
Brian Behlendorf a8adb61c00 Merge branch 'gcc-ident-pragmas' into refs/top-bases/gcc-branch 2009-10-14 15:57:08 -07:00
Brian Behlendorf 8a905e7dcc Update vtoc.h header and add missing mhd.h header needed by libefi. 2009-10-14 15:52:24 -07:00
Brian Behlendorf 39d85a8b94 Remove pragmas from new libefi files. 2009-10-14 15:44:22 -07:00
Brian Behlendorf 2fd5a539e9 Merge commit 'refs/top-bases/linux-have-zpl' into linux-have-zpl 2009-10-09 16:44:27 -07:00
Brian Behlendorf 9fb47da60f Merge commit 'refs/top-bases/linux-libspl' into linux-libspl 2009-10-09 16:44:10 -07:00
Brian Behlendorf 81ec3f8951 Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk 2009-10-09 16:43:53 -07:00
Brian Behlendorf bbe79ef2eb Merge commit 'refs/top-bases/linux-have-zvol' into linux-have-zvol 2009-10-09 16:43:13 -07:00
Brian Behlendorf 8b6b31f3e4 Merge branch 'linux-docs' into refs/top-bases/linux-zfs-branch 2009-10-09 16:42:09 -07:00
Brian Behlendorf cb91bbe6ce Additional set of build system tweaks for libefi library. 2009-10-09 16:37:32 -07:00
Brian Behlendorf cae4a99504 Merge branch 'linux-libspl' into refs/top-bases/linux-zfs-branch 2009-10-09 16:23:13 -07:00
Brian Behlendorf d7e242199c Header efi_partition.h moved to lib/libefi/include/sys/ 2009-10-09 16:18:39 -07:00
Brian Behlendorf caed68da36 Merge commit 'refs/top-bases/linux-have-zpl' into linux-have-zpl 2009-10-09 16:13:11 -07:00
Brian Behlendorf fc2213dfac Merge commit 'refs/top-bases/linux-libspl' into linux-libspl
Conflicts:

	lib/Makefile.am
2009-10-09 16:12:49 -07:00
Brian Behlendorf 7c073d0a7d Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk 2009-10-09 16:09:54 -07:00
Brian Behlendorf f0e7c21dfc Merge commit 'refs/top-bases/linux-have-zvol' into linux-have-zvol 2009-10-09 16:09:14 -07:00
Brian Behlendorf a740d2a8f7 Merge branch 'linux-docs' into refs/top-bases/linux-zfs-branch
Conflicts:

	lib/Makefile.am
2009-10-09 16:06:51 -07:00
Brian Behlendorf a0337cfcd8 Add libefi library in to the build system. 2009-10-09 15:58:45 -07:00
Brian Behlendorf c3b45fe669 Merge commit 'refs/top-bases/linux-have-zpl' into linux-have-zpl 2009-10-09 15:45:55 -07:00
Brian Behlendorf 746882c100 Merge commit 'refs/top-bases/linux-libspl' into linux-libspl 2009-10-09 15:45:38 -07:00
Brian Behlendorf 503c5eeb2d Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk 2009-10-09 15:45:22 -07:00
Brian Behlendorf 1e8929d87f Merge commit 'refs/top-bases/linux-have-zvol' into linux-have-zvol 2009-10-09 15:44:42 -07:00
Brian Behlendorf 90b0761a16 Merge branch 'linux-docs' into refs/top-bases/linux-zfs-branch 2009-10-09 15:43:37 -07:00
Brian Behlendorf e0e0f0ea84 Merge commit 'refs/top-bases/zfs-branch' into zfs-branch 2009-10-09 15:43:33 -07:00
Brian Behlendorf 46fa16ed8c Merge branch 'feature-zap-cursor-to-key' into refs/top-bases/feature-branch 2009-10-09 15:43:28 -07:00
Brian Behlendorf 5fc177d934 Merge branch 'fix-clock-wrap' into refs/top-bases/fix-branch 2009-10-09 15:43:00 -07:00
Brian Behlendorf 9302f90662 Merge branch 'gcc-branch' into refs/top-bases/zfs-branch 2009-10-09 15:42:56 -07:00
Brian Behlendorf 926a2e3cc4 Merge commit 'refs/top-bases/gcc-ident-pragmas' into gcc-ident-pragmas 2009-10-09 15:42:48 -07:00
Brian Behlendorf 3728b6d9c1 Merge branch 'gcc-c90' into refs/top-bases/gcc-branch 2009-10-09 15:42:16 -07:00
Brian Behlendorf 1b0e5a1485 Merge commit 'refs/top-bases/gcc-c90' into gcc-c90 2009-10-09 15:42:15 -07:00
Brian Behlendorf 5c36312909 Script update-zfs.sh updated to include libefi library 2009-10-09 15:37:29 -07:00
Brian Behlendorf 6ef15db027 Merge branch 'linux-have-libefi' into refs/top-bases/linux-zfs-branch 2009-10-09 15:03:50 -07:00
Brian Behlendorf f73cff230f Reverting changes on linux-have-libefi topic branch. 2009-10-09 14:59:05 -07:00
Brian Behlendorf 1365576b3e Merge commit 'refs/top-bases/linux-have-zpl' into linux-have-zpl 2009-08-18 14:22:24 -07:00
Brian Behlendorf 547471e842 Merge commit 'refs/top-bases/linux-libspl' into linux-libspl 2009-08-18 14:22:00 -07:00
Brian Behlendorf 060284b353 Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk 2009-08-18 14:21:35 -07:00
Brian Behlendorf bc611acf53 Merge commit 'refs/top-bases/linux-have-zvol' into linux-have-zvol 2009-08-18 14:20:35 -07:00
Brian Behlendorf 87bdf80fb7 Merge commit 'refs/top-bases/linux-have-libefi' into linux-have-libefi 2009-08-18 14:19:13 -07:00
Brian Behlendorf 147adbe815 Merge branch 'linux-docs' into refs/top-bases/linux-zfs-branch 2009-08-18 14:18:40 -07:00
Brian Behlendorf e4b55cfbff Merge commit 'refs/top-bases/zfs-branch' into zfs-branch 2009-08-18 14:18:36 -07:00
Brian Behlendorf 5d83878f46 Merge branch 'gcc-branch' into refs/top-bases/zfs-branch 2009-08-18 14:18:34 -07:00
Brian Behlendorf e134b976b6 Merge branch 'gcc-missing-braces' into refs/top-bases/gcc-branch 2009-08-18 14:18:33 -07:00
Brian Behlendorf b29c1f87a0 Required build 121 updates for gcc-missing-braces 2009-08-18 14:08:46 -07:00
Brian Behlendorf 6e43f5a80b Merge commit 'refs/top-bases/linux-have-zpl' into linux-have-zpl
Conflicts:

	module/zfs/rrwlock.c
	module/zfs/zfs_ioctl.c
2009-08-18 12:59:17 -07:00
Brian Behlendorf 3e17f18dcc Merge commit 'refs/top-bases/linux-libspl' into linux-libspl 2009-08-18 12:35:43 -07:00
Brian Behlendorf 8b02e1a43f Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk 2009-08-18 12:35:12 -07:00
Brian Behlendorf b3561355b8 Merge commit 'refs/top-bases/linux-have-zvol' into linux-have-zvol 2009-08-18 12:33:54 -07:00
Brian Behlendorf 2d067983d6 Merge commit 'refs/top-bases/linux-have-libefi' into linux-have-libefi 2009-08-18 12:29:48 -07:00
Brian Behlendorf c67303e092 Merge branch 'linux-docs' into refs/top-bases/linux-zfs-branch
Conflicts:

	lib/libzfs/libzfs_dataset.c
	module/zfs/dsl_dataset.c
	module/zfs/rrwlock.c
	module/zfs/spa_history.c
	module/zfs/zfs_ioctl.c
2009-08-18 12:26:09 -07:00
Brian Behlendorf 50c623ccef Merge commit 'refs/top-bases/zfs-branch' into zfs-branch 2009-08-18 12:10:55 -07:00
Brian Behlendorf bfbac5daec Merge branch 'feature-zap-cursor-to-key' into refs/top-bases/feature-branch 2009-08-18 12:10:38 -07:00
Brian Behlendorf d205b25a74 Merge branch 'fix-clock-wrap' into refs/top-bases/fix-branch 2009-08-18 12:09:10 -07:00
Brian Behlendorf b99b422796 Merge branch 'gcc-branch' into refs/top-bases/zfs-branch 2009-08-18 12:08:58 -07:00
Brian Behlendorf 41b297a27f Merge commit 'refs/top-bases/gcc-missing-braces' into gcc-missing-braces 2009-08-18 12:08:46 -07:00
Brian Behlendorf abd8fdb94f Merge commit 'refs/top-bases/gcc-ident-pragmas' into gcc-ident-pragmas
Conflicts:

	module/zfs/dsl_deleg.c
	module/zfs/rrwlock.c
2009-08-18 12:08:36 -07:00
Brian Behlendorf e5e4fadc34 Merge branch 'gcc-c90' into refs/top-bases/gcc-branch
Conflicts:

	module/zfs/dmu.c
	module/zfs/dsl_deleg.c
	module/zfs/rrwlock.c
	module/zfs/vdev_raidz.c
2009-08-18 12:04:53 -07:00
Brian Behlendorf 0f80e41c89 Merge commit 'refs/top-bases/gcc-c90' into gcc-c90
Conflicts:

	module/zfs/spa_misc.c
	module/zfs/vdev_label.c
2009-08-18 11:55:36 -07:00
Brian Behlendorf 45d1cae3b8 Rebase master to b121 2009-08-18 11:43:27 -07:00
Brian Behlendorf 0803564cbe Merge commit 'refs/top-bases/linux-have-zpl' into linux-have-zpl 2009-08-04 15:58:39 -07:00
Brian Behlendorf 1dd0a6bab1 Merge commit 'refs/top-bases/linux-libspl' into linux-libspl 2009-08-04 15:58:13 -07:00
Brian Behlendorf 4eae170dc5 Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk 2009-08-04 15:57:44 -07:00
Brian Behlendorf 1bfe0d5177 Merge commit 'refs/top-bases/linux-have-zvol' into linux-have-zvol 2009-08-04 15:56:36 -07:00
Brian Behlendorf e86a0e8ad1 Merge commit 'refs/top-bases/linux-have-libefi' into linux-have-libefi 2009-08-04 15:55:06 -07:00
Brian Behlendorf 72fc3eca7e Merge branch 'linux-docs' into refs/top-bases/linux-zfs-branch 2009-08-04 15:54:25 -07:00
Brian Behlendorf f88cbd6535 Merge commit 'refs/top-bases/zfs-branch' into zfs-branch 2009-08-04 15:54:21 -07:00
Brian Behlendorf 8c28ed9bff Merge branch 'feature-branch' into refs/top-bases/zfs-branch 2009-08-04 15:54:19 -07:00
Brian Behlendorf 7069d048a0 Revert kthreads based on pthread thread specific data due to failure.
With this patch applied I get the following failure 100% of the time,
I'd prefer to debug it and keep moving forward but I do not have the
time right now so I'm reverting the patch to the version which worked.
Ricardo please fix.

(gdb) bt
0  ztest_dmu_write_parallel (za=0x2aaaac898960) at
../../cmd/ztest/ztest.c:2566
1  0x0000000000405a79 in ztest_thread (arg=<value optimized out>)
    at ../../cmd/ztest/ztest.c:3862
2  0x00002b2e6a7a841d in zk_thread_helper (arg=<value optimized out>)
    at ../../lib/libzpool/kernel.c:131
3  0x000000379be06367 in start_thread (arg=<value optimized out>)
    at pthread_create.c:297
4  0x000000379b2d30ad in clone () from /lib64/libc.so.6
2009-08-04 15:42:24 -07:00
Brian Behlendorf ca59cc5c82 Merge commit 'refs/top-bases/linux-have-zpl' into linux-have-zpl 2009-08-04 14:43:29 -07:00
Brian Behlendorf 5cc3f79553 Merge commit 'refs/top-bases/linux-libspl' into linux-libspl 2009-08-04 14:43:02 -07:00
Brian Behlendorf 94fd6b5326 Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk 2009-08-04 14:42:33 -07:00
Brian Behlendorf d160703a9c Merge commit 'refs/top-bases/linux-have-zvol' into linux-have-zvol 2009-08-04 14:41:26 -07:00
Brian Behlendorf 4576ca6889 Merge commit 'refs/top-bases/linux-have-libefi' into linux-have-libefi 2009-08-04 14:39:53 -07:00
Brian Behlendorf 139ca4655e Merge branch 'linux-docs' into refs/top-bases/linux-zfs-branch 2009-08-04 14:39:11 -07:00
Brian Behlendorf 3e5388907b Merge commit 'refs/top-bases/zfs-branch' into zfs-branch 2009-08-04 14:39:07 -07:00
Brian Behlendorf 9aedfd95f6 Merge branch 'feature-branch' into refs/top-bases/zfs-branch 2009-08-04 14:39:06 -07:00
Ricardo M. Correia c0ce3b40f2 Reimplement user kthreads based on pthread thread specific data.
This resolves previous scalabily concerns about the cost of calling
curthread which previously required a list walk.  The kthread address
is now tracked as thread specific data which can be quickly returned.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
2009-08-04 13:55:15 -07:00
Brian Behlendorf 9dec42d15d Merge commit 'refs/top-bases/linux-have-zpl' into linux-have-zpl 2009-07-31 14:06:28 -07:00
Brian Behlendorf 0c20001d27 Merge commit 'refs/top-bases/linux-libspl' into linux-libspl 2009-07-31 14:06:05 -07:00
Brian Behlendorf 21dee98331 Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk 2009-07-31 14:05:42 -07:00
Brian Behlendorf e03d56f19c Merge commit 'refs/top-bases/linux-have-zvol' into linux-have-zvol 2009-07-31 14:04:46 -07:00
Brian Behlendorf 744f29654f Merge commit 'refs/top-bases/linux-have-libefi' into linux-have-libefi 2009-07-31 14:03:32 -07:00
Brian Behlendorf 4880532956 Merge branch 'linux-docs' into refs/top-bases/linux-zfs-branch 2009-07-31 14:02:54 -07:00
Brian Behlendorf 9f5e45ef4d Merge commit 'refs/top-bases/zfs-branch' into zfs-branch 2009-07-31 14:02:49 -07:00
Brian Behlendorf cf44f97b96 Merge branch 'gcc-branch' into refs/top-bases/zfs-branch 2009-07-31 14:02:48 -07:00
Brian Behlendorf 252846a145 Merge branch 'gcc-shadow' into refs/top-bases/gcc-branch 2009-07-31 14:02:46 -07:00
Brian Behlendorf cfd9e9936f Fix an accidentally introduced formatting issue in zfs output.
Because the local 'index' variable shadows the index() function
it was replaced by 'i'.  Unfortunately when I made this change
I accidentally replaced one instance with 'j' resulting in the
short decimal values being printed incorrectly.
2009-07-31 13:50:21 -07:00
Brian Behlendorf dbee607bbd Merge commit 'refs/top-bases/linux-have-zpl' into linux-have-zpl 2009-07-29 21:31:26 -07:00
Brian Behlendorf d6bde0ec4f Merge commit 'refs/top-bases/linux-libspl' into linux-libspl 2009-07-29 21:31:02 -07:00
Brian Behlendorf 54f3881f7a Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk 2009-07-29 21:30:36 -07:00
Brian Behlendorf 9cdb618921 Merge commit 'refs/top-bases/linux-have-zvol' into linux-have-zvol 2009-07-29 21:29:28 -07:00
Brian Behlendorf d29bbc0642 Merge commit 'refs/top-bases/linux-have-libefi' into linux-have-libefi 2009-07-29 21:28:05 -07:00