Brian Behlendorf
48d1b0c5ab
Cleanly integrate ZFS tools with libblkid.
...
The majority of this this patch concerns itself with doing a direct
replacement of Solaris's libdiskmgt library with libblkid+libefi.
You'll notice that this patch removes all libdiskmgt code instead of
ifdef'ing it out. This was done to minimize any confusion when reading
the code because it seems unlikely we will ever port libdiskmgt to Linux.
Despite the replacement the behavior of the tools should have remained
the same with one exception. For the moment, we are unable to check
the partitions of devices which have an MBR style partition table when
creating a filesystem. If a non-efi partition sceme is detected on a
whole disk device we prompt the user to explicity use the force option.
It would not be a ton of work to make the tool aware of MBR style
partitions if this becomes a problem.
I've done basic sanity checking for various configurations and all
the issues I'm aware of have been addressed. Even things like blkid
misidentifing a disk as ext3 when it is added to a zfs pool. I'm
careful to always zero out the first 4k of any new zfs partition. That
all said this is all new code and while it looks like it's working right
for me we should keep an eye on it for any strange behavior.
2009-10-15 16:28:47 -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
81ec3f8951
Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk
2009-10-09 16:43:53 -07:00
Brian Behlendorf
cb91bbe6ce
Additional set of build system tweaks for libefi library.
2009-10-09 16:37:32 -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
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
8b02e1a43f
Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk
2009-08-18 12:35:12 -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
b3ea816a68
Merge commit 'refs/top-bases/fix-get-configs' into fix-get-configs
2009-08-18 12:09:36 -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
db89339134
Merge commit 'refs/top-bases/gcc-shadow' into gcc-shadow
...
Conflicts:
module/zfs/dmu.c
2009-08-18 12:07:23 -07:00
Brian Behlendorf
481225606c
Merge commit 'refs/top-bases/gcc-no-parenthesis' into gcc-no-parenthesis
2009-08-18 12:05:39 -07:00
Brian Behlendorf
9e903015fd
Merge commit 'refs/top-bases/gcc-cast' into gcc-cast
2009-08-18 12:05:07 -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
21dee98331
Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk
2009-07-31 14:05:42 -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
54f3881f7a
Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk
2009-07-29 21:30:36 -07:00
Brian Behlendorf
2d86fb2788
Merge commit 'refs/top-bases/zfs-branch' into zfs-branch
2009-07-29 21:27:13 -07:00
Brian Behlendorf
e2bbeb5e61
Merge branch 'gcc-branch' into refs/top-bases/zfs-branch
2009-07-29 21:27:06 -07:00
Brian Behlendorf
f80c505f4d
Merge branch 'gcc-uninit' into refs/top-bases/gcc-branch
2009-07-29 21:27:04 -07:00
Brian Behlendorf
72d2035ed3
Updated gcc in fc11 flagged a new uninitialized variable.
2009-07-29 21:17:47 -07:00
Brian Behlendorf
8f1db6316f
Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk
2009-07-24 09:18:50 -07:00
Brian Behlendorf
82ca18caae
Merge commit 'refs/top-bases/zfs-branch' into zfs-branch
2009-07-24 09:15:56 -07:00
Brian Behlendorf
825c086a4e
Merge branch 'fix-branch' into refs/top-bases/zfs-branch
2009-07-24 09:15:55 -07:00
Brian Behlendorf
e4610d7991
Merge branch 'fix-get-configs' into refs/top-bases/fix-branch
2009-07-24 09:15:53 -07:00
Brian Behlendorf
1b4dfb80fb
Increase buffer size for nvlist for large configurations
...
It's still not clear to me why the default value here is large
enough Solaris. I hit this limit again when setting up 120 SATA
drives configured as 15 raidz2 groups each containing 8 drives.
We expect to go bigger so we may just want to spend a little
time and figure out how to make this all dynamic.
2009-07-24 08:53:18 -07:00
Brian Behlendorf
24402e5c15
Drop duplicate defines
2009-07-07 14:58:56 -07:00
Brian Behlendorf
daebbab116
Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk
2009-07-07 14:31:41 -07:00
Brian Behlendorf
3ad5361df2
Merge commit 'refs/top-bases/zfs-branch' into zfs-branch
2009-07-07 14:28:14 -07:00
Brian Behlendorf
ba97ae2628
Merge branch 'fix-branch' into refs/top-bases/zfs-branch
2009-07-07 14:28:13 -07:00
Brian Behlendorf
ed3bd6f446
Merge branch 'fix-acl' into refs/top-bases/fix-branch
2009-07-07 14:19:35 -07:00
Brian Behlendorf
798cf63309
New topic branch for minor acl related fixes
2009-07-07 14:18:47 -07:00
Brian Behlendorf
e945eb4fe1
Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk
2009-07-07 14:13:02 -07:00
Brian Behlendorf
34422f0ffa
Merge commit 'refs/top-bases/zfs-branch' into zfs-branch
2009-07-07 13:50:32 -07:00
Brian Behlendorf
47502cd94b
Merge branch 'gcc-branch' into refs/top-bases/zfs-branch
2009-07-07 13:50:31 -07:00
Brian Behlendorf
fb26df15c8
Merge branch 'gcc-missing-braces' into refs/top-bases/gcc-branch
2009-07-07 13:50:30 -07:00
Brian Behlendorf
cad9fa40e1
Merge branch 'gcc-cast' into refs/top-bases/gcc-branch
2009-07-07 13:50:29 -07:00
Brian Behlendorf
a2423197e1
Resolve missing cast warning
2009-07-07 13:41:51 -07:00
Brian Behlendorf
361e0e7685
Fix newly introduced missing braces warnings for gcc.
2009-07-07 13:40:16 -07:00
Brian Behlendorf
409cfe5051
Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk
...
Conflicts:
lib/libzfs/libzfs_pool.c
2009-07-06 15:05:47 -07:00
Brian Behlendorf
658459249e
Merge commit 'refs/top-bases/zfs-branch' into zfs-branch
2009-07-06 13:17:28 -07:00
Brian Behlendorf
e320858042
Merge commit 'refs/top-bases/fix-get-configs' into fix-get-configs
2009-07-06 13:12:54 -07:00
Brian Behlendorf
01c3cfc58f
Merge branch 'fix-clock-wrap' into refs/top-bases/fix-branch
...
Conflicts:
module/zfs/zil.c
2009-07-06 13:12:23 -07:00
Brian Behlendorf
a1ccb00b7e
Merge branch 'gcc-branch' into refs/top-bases/zfs-branch
...
Conflicts:
cmd/ztest/ztest.c
module/zfs/zil.c
2009-07-06 13:11:34 -07:00
Brian Behlendorf
480b03791d
Merge commit 'refs/top-bases/gcc-missing-braces' into gcc-missing-braces
...
Conflicts:
lib/libzfs/libzfs_dataset.c
2009-07-02 17:07:52 -07:00
Brian Behlendorf
244d656e28
Merge commit 'refs/top-bases/gcc-shadow' into gcc-shadow
...
Conflicts:
module/zfs/dmu.c
2009-07-02 16:59:39 -07:00
Brian Behlendorf
44703f0029
Merge commit 'refs/top-bases/gcc-uninit' into gcc-uninit
...
Conflicts:
lib/libzfs/libzfs_dataset.c
module/zfs/arc.c
module/zfs/spa.c
2009-07-02 16:57:09 -07:00
Brian Behlendorf
eb0137f395
Merge commit 'refs/top-bases/gcc-no-parenthesis' into gcc-no-parenthesis
...
Conflicts:
lib/libzfs/libzfs_dataset.c
module/zfs/arc.c
module/zfs/dmu_objset.c
module/zfs/dsl_pool.c
module/zfs/spa.c
module/zfs/zfs_ioctl.c
2009-07-02 16:55:22 -07:00
Brian Behlendorf
b095bf444a
Merge commit 'refs/top-bases/gcc-cast' into gcc-cast
...
Conflicts:
cmd/zfs/zfs_main.c
lib/libzfs/libzfs_dataset.c
2009-07-02 16:50:53 -07:00
Brian Behlendorf
e2b2597751
Merge branch 'gcc-c90' into refs/top-bases/gcc-branch
...
Conflicts:
cmd/zdb/zdb_il.c
cmd/zfs/zfs_main.c
cmd/zinject/zinject.c
cmd/ztest/ztest.c
lib/libzfs/libzfs_dataset.c
lib/libzfs/libzfs_graph.c
module/zcommon/include/sys/fm/fs/zfs.h
module/zcommon/include/zfs_deleg.h
module/zcommon/include/zfs_namecheck.h
module/zcommon/zfs_deleg.c
module/zcommon/zfs_namecheck.c
module/zcommon/zprop_common.c
module/zfs/arc.c
module/zfs/dmu.c
module/zfs/dmu_object.c
module/zfs/dmu_objset.c
module/zfs/dsl_pool.c
module/zfs/dsl_prop.c
module/zfs/fletcher.c
module/zfs/include/sys/dsl_deleg.h
module/zfs/include/sys/dsl_prop.h
module/zfs/include/sys/metaslab_impl.h
module/zfs/include/sys/spa_boot.h
module/zfs/include/sys/zap.h
module/zfs/include/sys/zap_impl.h
module/zfs/include/sys/zfs_context.h
module/zfs/include/sys/zfs_ctldir.h
module/zfs/include/sys/zfs_dir.h
module/zfs/include/sys/zfs_fuid.h
module/zfs/include/sys/zfs_ioctl.h
module/zfs/spa.c
module/zfs/spa_errlog.c
module/zfs/spa_history.c
module/zfs/zap.c
module/zfs/zap_leaf.c
module/zfs/zap_micro.c
module/zfs/zfs_ioctl.c
module/zfs/zio.c
2009-07-02 16:49:11 -07:00
Brian Behlendorf
9babb37438
Rebase master to b117
2009-07-02 15:44:48 -07:00
Brian Behlendorf
1997a1de19
Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk
2009-03-16 16:22:04 -07:00
Brian Behlendorf
df985d53db
Merge commit 'refs/top-bases/zfs-branch' into zfs-branch
2009-03-16 16:17:57 -07:00
Brian Behlendorf
f86b52a39d
Merge branch 'gcc-branch' into refs/top-bases/zfs-branch
2009-03-16 16:17:55 -07:00
Brian Behlendorf
3eebe1bd0e
Merge branch 'gcc-uninit' into refs/top-bases/gcc-branch
2009-03-16 16:17:54 -07:00
Brian Behlendorf
3eb4ba3ebd
Add 3 more uninit errors detected by gcc 3.4.0 compiler.
2009-03-16 16:06:50 -07:00
Brian Behlendorf
10e245f03f
Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk
...
Conflicts:
cmd/zpool/zpool_main.c
2009-03-16 10:42:20 -07:00
Brian Behlendorf
be112b3f57
Merge commit 'refs/top-bases/zfs-branch' into zfs-branch
2009-03-16 10:30:31 -07:00
Brian Behlendorf
5ee8a85ba6
Merge branch 'fix-branch' into refs/top-bases/zfs-branch
2009-03-16 10:30:27 -07:00
Brian Behlendorf
9818e69640
Merge branch 'fix-deadcode' into refs/top-bases/fix-branch
2009-03-16 10:12:01 -07:00
Brian Behlendorf
2924858552
Remove two self referential functions.
...
Newer versions of gcc (4.3.0) detected the following unused
code segments.
2009-03-16 10:02:06 -07:00
Brian Behlendorf
a5326d0d28
Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk
2009-03-12 15:28:42 -07:00
Brian Behlendorf
379d9cf34d
Merge commit 'refs/top-bases/zfs-branch' into zfs-branch
2009-03-12 15:26:15 -07:00
Brian Behlendorf
6a59551cb7
Merge branch 'fix-branch' into refs/top-bases/zfs-branch
2009-03-12 15:26:13 -07:00
Brian Behlendorf
c4e10eb3df
Merge branch 'fix-strncat' into refs/top-bases/fix-branch
2009-03-12 15:21:30 -07:00
Brian Behlendorf
f1f9c50dd9
Add fix-strncat branch which corrects a buffer overrun.
2009-03-12 15:20:26 -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
b9b399bf04
Merge commit 'refs/top-bases/zfs-branch' into zfs-branch
2009-03-12 10:37:14 -07:00
Brian Behlendorf
a03187bb3b
Merge branch 'gcc-branch' into refs/top-bases/zfs-branch
2009-03-12 10:37:12 -07:00
Brian Behlendorf
f8fe8a76f4
Merge branch 'gcc-uninit' into refs/top-bases/gcc-branch
2009-03-12 10:37:11 -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
77695eacc1
Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk
2009-03-12 10:02:45 -07:00
Brian Behlendorf
dd30dba016
Merge commit 'refs/top-bases/zfs-branch' into zfs-branch
2009-03-12 10:00:04 -07:00
Brian Behlendorf
193ea156e9
Merge branch 'gcc-branch' into refs/top-bases/zfs-branch
2009-03-12 10:00:03 -07:00
Brian Behlendorf
eceaf813ad
Merge branch 'gcc-missing-case' into refs/top-bases/gcc-branch
2009-03-12 10:00:01 -07:00
Brian Behlendorf
f2d72af596
Add remaining missing cases (or a default) to all switch statements.
...
The previous code was not wrong, but this prevents gcc from warning
us about missing cases for these known safe switch statements. The
-Wno-missing-cases can now be removed to detect places where we
accidentally forgot a case.
2009-03-12 09:53:08 -07:00
Brian Behlendorf
b392fd33fd
Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk
2009-03-11 21:02:27 -07:00
Brian Behlendorf
4c042de40b
Merge commit 'refs/top-bases/zfs-branch' into zfs-branch
2009-03-11 20:59:43 -07:00
Brian Behlendorf
60ac8152fe
Merge branch 'gcc-branch' into refs/top-bases/zfs-branch
2009-03-11 20:59:42 -07:00
Brian Behlendorf
9915249546
Merge branch 'gcc-missing-braces' into refs/top-bases/gcc-branch
2009-03-11 20:53:11 -07:00
Brian Behlendorf
d4dbc7dca8
Resolve all instances of missing braces.
2009-03-11 20:52:21 -07:00
Brian Behlendorf
330dbde81a
Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk
2009-03-11 14:12:39 -07:00
Brian Behlendorf
1ca6578ebc
Merge commit 'refs/top-bases/zfs-branch' into zfs-branch
2009-03-11 14:08:51 -07:00
Brian Behlendorf
8a3b1a5ff5
Merge branch 'gcc-branch' into refs/top-bases/zfs-branch
2009-03-11 14:08:50 -07:00
Brian Behlendorf
e5011401cd
Merge branch 'gcc-no-parenthesis' into refs/top-bases/gcc-branch
2009-03-11 14:08:48 -07:00
Brian Behlendorf
3226eea157
Resolve additional cases where gcc wants extra parenthesis.
...
These were introduced by the rebase to b108.
2009-03-11 13:57:47 -07:00
Brian Behlendorf
261ca2beb9
Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk
2009-03-11 11:19:58 -07:00
Brian Behlendorf
dff484a388
Merge commit 'refs/top-bases/zfs-branch' into zfs-branch
2009-03-11 11:09:13 -07:00
Brian Behlendorf
5f30a3cb0e
Merge branch 'gcc-branch' into refs/top-bases/zfs-branch
2009-03-11 11:09:11 -07:00
Brian Behlendorf
8fe801fd8f
Merge branch 'gcc-ident-pragmas' into refs/top-bases/gcc-branch
2009-03-11 11:00:42 -07:00
Ricardo M. Correia
af45030850
Added 'gcc-ident-pragmas' branch.
2009-03-11 10:59:45 -07:00