mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 18:40:43 +03:00
Revert "zpool reopen should detect expanded devices"
This reverts commit 2a16d4cfaf.
The commit was causing a "attempt to access beyond the end
of device" error:
list.zfsonlinux.org/pipermail/zfs-discuss/2018-September/032217.html
This commit is contained in:
+1
-19
@@ -22,7 +22,6 @@
|
||||
/*
|
||||
* Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright 2012 Nexenta Systems, Inc. All rights reserved.
|
||||
* Copyright (c) 2018 by Delphix. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
@@ -1154,7 +1153,7 @@ efi_use_whole_disk(int fd)
|
||||
|
||||
/*
|
||||
* Find the last physically non-zero partition.
|
||||
* This should be the reserved partition.
|
||||
* This is the reserved partition.
|
||||
*/
|
||||
for (i = 0; i < efi_label->efi_nparts; i ++) {
|
||||
if (resv_start < efi_label->efi_parts[i].p_start) {
|
||||
@@ -1163,23 +1162,6 @@ efi_use_whole_disk(int fd)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Verify that we've found the reserved partition by checking
|
||||
* that it looks the way it did when we created it in zpool_label_disk.
|
||||
* If we've found the incorrect partition, then we know that this
|
||||
* device was reformatted and no longer is soley used by ZFS.
|
||||
*/
|
||||
if ((efi_label->efi_parts[resv_index].p_size != EFI_MIN_RESV_SIZE) ||
|
||||
(efi_label->efi_parts[resv_index].p_tag != V_RESERVED) ||
|
||||
(resv_index != 8)) {
|
||||
if (efi_debug) {
|
||||
(void) fprintf(stderr,
|
||||
"efi_use_whole_disk: wholedisk not available\n");
|
||||
}
|
||||
efi_free(efi_label);
|
||||
return (VT_ENOSPC);
|
||||
}
|
||||
|
||||
/*
|
||||
* Find the last physically non-zero partition before that.
|
||||
* This is the data partition.
|
||||
|
||||
@@ -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, 2018 by Delphix. All rights reserved.
|
||||
* Copyright (c) 2011, 2014 by Delphix. All rights reserved.
|
||||
* Copyright 2016 Igor Kozhukhov <ikozhukhov@gmail.com>
|
||||
* Copyright (c) 2017 Datto Inc.
|
||||
*/
|
||||
@@ -42,7 +42,6 @@
|
||||
#include <sys/efi_partition.h>
|
||||
#include <sys/vtoc.h>
|
||||
#include <sys/zfs_ioctl.h>
|
||||
#include <sys/vdev_disk.h>
|
||||
#include <dlfcn.h>
|
||||
|
||||
#include "zfs_namecheck.h"
|
||||
@@ -935,6 +934,17 @@ 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'.
|
||||
|
||||
Reference in New Issue
Block a user