From 74d42600d8d391dab5c57e87e81f97e0ca07b7b2 Mon Sep 17 00:00:00 2001 From: Sara Hartse Date: Thu, 31 May 2018 10:36:37 -0700 Subject: zpool reopen should detect expanded devices Update bdev_capacity to have wholedisk vdevs query the size of the underlying block device (correcting for the size of the efi parition and partition alignment) and therefore detect expanded space. Correct vdev_get_stats_ex so that the expandsize is aligned to metaslab size and new space is only reported if it is large enough for a new metaslab. Reviewed by: Don Brady Reviewed-by: Brian Behlendorf Reviewed by: George Wilson Reviewed-by: Matthew Ahrens Reviewed by: John Wren Kennedy Signed-off-by: sara hartse External-issue: LX-165 Closes #7546 Issue #7582 --- lib/libzfs/libzfs_pool.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) (limited to 'lib/libzfs/libzfs_pool.c') diff --git a/lib/libzfs/libzfs_pool.c b/lib/libzfs/libzfs_pool.c index d082a5f66..935b42993 100644 --- a/lib/libzfs/libzfs_pool.c +++ b/lib/libzfs/libzfs_pool.c @@ -22,7 +22,7 @@ /* * Copyright 2015 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2011, 2017 by Delphix. All rights reserved. + * Copyright (c) 2011, 2018 by Delphix. All rights reserved. * Copyright 2016 Igor Kozhukhov * Copyright (c) 2017 Datto Inc. * Copyright (c) 2017 Open-E, Inc. All Rights Reserved. @@ -44,6 +44,7 @@ #include #include #include +#include #include #include "zfs_namecheck.h" @@ -925,17 +926,6 @@ zpool_prop_get_feature(zpool_handle_t *zhp, const char *propname, char *buf, return (0); } -/* - * Don't start the slice at the default block of 34; many storage - * devices will use a stripe width of 128k, other vendors prefer a 1m - * alignment. It is best to play it safe and ensure a 1m alignment - * given 512B blocks. When the block size is larger by a power of 2 - * we will still be 1m aligned. Some devices are sensitive to the - * partition ending alignment as well. - */ -#define NEW_START_BLOCK 2048 -#define PARTITION_END_ALIGNMENT 2048 - /* * Validate the given pool name, optionally putting an extended error message in * 'buf'. -- cgit v1.2.3