Commit Graph

26 Commits

Author SHA1 Message Date
Brian Behlendorf 702a78ed33 Merge branch 'linux-have-libdiskmgt' into refs/top-bases/linux-zfs-branch 2009-10-15 09:38:51 -07:00
Brian Behlendorf 172ca0a7f1 Remove topic branch linux-have-libdiskmgt 2009-10-15 09:34:17 -07:00
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 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 8b02e1a43f Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk 2009-08-18 12:35:12 -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 f301459f0e Merge commit 'refs/top-bases/linux-have-libdiskmgt' into linux-have-libdiskmgt 2009-08-18 12:29:32 -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 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 45d1cae3b8 Rebase master to b121 2009-08-18 11:43:27 -07:00
Brian Behlendorf fbbb5fe669 Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk 2009-03-12 10:40:09 -07:00
Brian Behlendorf 45f3d2a2a4 Merge commit 'refs/top-bases/linux-have-libefi' into linux-have-libefi 2009-03-12 10:38:05 -07:00
Brian Behlendorf 5f9ae91a8a Merge commit 'refs/top-bases/linux-have-libdiskmgt' into linux-have-libdiskmgt 2009-03-12 10:37:50 -07:00
Brian Behlendorf 9bdbd7c8f7 Merge branch 'linux-arc' into refs/top-bases/linux-zfs-branch 2009-03-12 10:37:18 -07:00
Brian Behlendorf cabd4a69c4 Resolve remaining uninitialized variables
Most of these fixes appear to be harmless and should never occur.
However, there were a few cases in this patch which do concern me,
I doubt we're seeing them but they look possible... mainly in the
user tools.
2009-03-12 10:30:41 -07:00
Brian Behlendorf da4d2eea9d Merge branch 'linux-have-libdiskmgt' into refs/top-bases/linux-zfs-branch 2009-03-11 23:10:06 -07:00
Brian Behlendorf 73db9f622c Pull unused err variable under HAVE_DM_INUSE_SWAP ifdef. 2009-03-11 23:05:42 -07:00
Brian Behlendorf 8b0a74c863 Merge branch 'linux-have-libdiskmgt' into refs/top-bases/linux-zfs-branch 2008-12-22 10:11:31 -08:00
Brian Behlendorf c72d6b30e8 Remove one more header 2008-12-22 10:07:53 -08:00
Brian Behlendorf 645c51287f Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk 2008-12-11 11:37:35 -08:00
Brian Behlendorf 1b0348e335 Merge commit 'refs/top-bases/linux-have-libefi' into linux-have-libefi 2008-12-11 11:35:29 -08:00
Brian Behlendorf a9ec92e894 Merge commit 'refs/top-bases/linux-have-libdiskmgt' into linux-have-libdiskmgt 2008-12-11 11:35:19 -08:00
Brian Behlendorf aca9d98817 Fix conflict 2008-12-11 11:34:16 -08:00
Brian Behlendorf 172bb4bd5e Move the world out of /zfs/ and seperate out module build tree 2008-12-11 11:08:09 -08:00