summaryrefslogtreecommitdiffstats
path: root/module/zfs/spa.c
diff options
context:
space:
mode:
authorRoman Strashkin <[email protected]>2018-09-13 04:14:42 +0300
committerBrian Behlendorf <[email protected]>2018-09-12 18:14:42 -0700
commit733b5722b4fc6e7927ea8a33bef49f7059d91903 (patch)
treee15da574cc36b67130e2947ab7eb71e1483c0d29 /module/zfs/spa.c
parentb8a90418f3a9c23b89c5d2c729a4dd0fea644508 (diff)
zpool split can create a corrupted pool
Added vdev_resilver_needed() check to verify VDEVs are fully synced, so that after split the new pool will not be corrupted. Reviewed by: Pavel Zakharov <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: loli10K <[email protected]> Signed-off-by: Roman Strashkin <[email protected]> Closes #7865 Closes #7881
Diffstat (limited to 'module/zfs/spa.c')
-rw-r--r--module/zfs/spa.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/module/zfs/spa.c b/module/zfs/spa.c
index c503b06bc..7bf9cde5b 100644
--- a/module/zfs/spa.c
+++ b/module/zfs/spa.c
@@ -22,8 +22,7 @@
/*
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2011, 2017 by Delphix. All rights reserved.
- * Copyright (c) 2015, Nexenta Systems, Inc. All rights reserved.
- * Copyright (c) 2013, 2014, Nexenta Systems, Inc. All rights reserved.
+ * Copyright (c) 2018, Nexenta Systems, Inc. All rights reserved.
* Copyright (c) 2014 Spectra Logic Corporation, All rights reserved.
* Copyright 2013 Saso Kiselkov. All rights reserved.
* Copyright (c) 2014 Integros [integros.com]
@@ -6485,7 +6484,8 @@ spa_vdev_split_mirror(spa_t *spa, char *newname, nvlist_t *config,
break;
}
- if (vdev_dtl_required(vml[c])) {
+ if (vdev_dtl_required(vml[c]) ||
+ vdev_resilver_needed(vml[c], NULL, NULL)) {
error = SET_ERROR(EBUSY);
break;
}