git://git.camperquake.de
/
zfs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Set RPM_DEFINE_COMMON options
[zfs.git]
/
module
/
zfs
/
vdev.c
diff --git
a/module/zfs/vdev.c
b/module/zfs/vdev.c
index
9335ba5
..
afff4d4
100644
(file)
--- a/
module/zfs/vdev.c
+++ b/
module/zfs/vdev.c
@@
-1258,11
+1258,12
@@
vdev_open(vdev_t *vd)
if (vd->vdev_asize == 0) {
/*
* This is the first-ever open, so use the computed values.
if (vd->vdev_asize == 0) {
/*
* This is the first-ever open, so use the computed values.
- * For
testing purposes, a higher
ashift can be requested.
+ * For
compatibility, a different
ashift can be requested.
*/
vd->vdev_asize = asize;
vd->vdev_max_asize = max_asize;
*/
vd->vdev_asize = asize;
vd->vdev_max_asize = max_asize;
- vd->vdev_ashift = MAX(ashift, vd->vdev_ashift);
+ if (vd->vdev_ashift == 0)
+ vd->vdev_ashift = ashift;
} else {
/*
* Detect if the alignment requirement has increased.
} else {
/*
* Detect if the alignment requirement has increased.
@@
-1348,9
+1349,10
@@
vdev_validate(vdev_t *vd, boolean_t strict)
if (vd->vdev_ops->vdev_op_leaf && vdev_readable(vd)) {
uint64_t aux_guid = 0;
nvlist_t *nvl;
if (vd->vdev_ops->vdev_op_leaf && vdev_readable(vd)) {
uint64_t aux_guid = 0;
nvlist_t *nvl;
+ uint64_t txg = spa_last_synced_txg(spa) != 0 ?
+ spa_last_synced_txg(spa) : -1ULL;
- if ((label = vdev_label_read_config(vd, VDEV_BEST_LABEL)) ==
- NULL) {
+ if ((label = vdev_label_read_config(vd, txg)) == NULL) {
vdev_set_state(vd, B_TRUE, VDEV_STATE_CANT_OPEN,
VDEV_AUX_BAD_LABEL);
return (0);
vdev_set_state(vd, B_TRUE, VDEV_STATE_CANT_OPEN,
VDEV_AUX_BAD_LABEL);
return (0);
@@
-1994,7
+1996,7
@@
vdev_validate_aux(vdev_t *vd)
if (!vdev_readable(vd))
return (0);
if (!vdev_readable(vd))
return (0);
- if ((label = vdev_label_read_config(vd,
VDEV_BEST_LABE
L)) == NULL) {
+ if ((label = vdev_label_read_config(vd,
-1UL
L)) == NULL) {
vdev_set_state(vd, B_TRUE, VDEV_STATE_CANT_OPEN,
VDEV_AUX_CORRUPT_DATA);
return (-1);
vdev_set_state(vd, B_TRUE, VDEV_STATE_CANT_OPEN,
VDEV_AUX_CORRUPT_DATA);
return (-1);