aboutsummaryrefslogtreecommitdiffstats
path: root/cmd
diff options
context:
space:
mode:
authorNed Bass <[email protected]>2012-02-24 16:37:41 -0800
committerBrian Behlendorf <[email protected]>2012-02-27 08:52:38 -0800
commit3a4f6caf08c095397f87f8e6fc5d734a56fff9c9 (patch)
tree60979b6c70df22e159eb793fd50f80779c43f7c3 /cmd
parenta473d90ceeb57a7e63b35fdc82486251b162df0e (diff)
Return success from check_slice() if device doesn't exist
When creating a new pool, make_root_vdev() calls check_in_use() to ensure that none of the consituent disks are in use. If the disk contains a valid vdev label it is read to retrieve the list of its child vdevs and these are checked recursively. However, the partitions stored in the vdev label my no longer exist, for example if the partition table has since been altered. In any such case we would want the pool creation to proceed, so this change removes the check from check_slice() that returns an error if the device doesn't exist. As an added assurance, the Solaris implementation also returns sucess on ENOENT. Signed-off-by: Brian Behlendorf <[email protected]>
Diffstat (limited to 'cmd')
-rw-r--r--cmd/zpool/zpool_vdev.c9
1 files changed, 0 insertions, 9 deletions
diff --git a/cmd/zpool/zpool_vdev.c b/cmd/zpool/zpool_vdev.c
index ea887f8b9..a65847038 100644
--- a/cmd/zpool/zpool_vdev.c
+++ b/cmd/zpool/zpool_vdev.c
@@ -188,19 +188,10 @@ check_error(int err)
static int
check_slice(const char *path, blkid_cache cache, int force, boolean_t isspare)
{
- struct stat64 statbuf;
int err;
#ifdef HAVE_LIBBLKID
char *value;
-#endif /* HAVE_LIBBLKID */
-
- if (stat64(path, &statbuf) != 0) {
- vdev_error(gettext("cannot stat %s: %s\n"),
- path, strerror(errno));
- return (-1);
- }
-#ifdef HAVE_LIBBLKID
/* No valid type detected device is safe to use */
value = blkid_get_tag_value(cache, "TYPE", path);
if (value == NULL)