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
Illumos #3552, #3564
[zfs.git]
/
module
/
zfs
/
vdev_root.c
diff --git
a/module/zfs/vdev_root.c
b/module/zfs/vdev_root.c
index
524c8e6
..
5241b02
100644
(file)
--- a/
module/zfs/vdev_root.c
+++ b/
module/zfs/vdev_root.c
@@
-19,10
+19,14
@@
* CDDL HEADER END
*/
/*
* CDDL HEADER END
*/
/*
- * Copyright 20
09
Sun Microsystems, Inc. All rights reserved.
+ * Copyright 20
10
Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
* Use is subject to license terms.
*/
+/*
+ * Copyright (c) 2012 by Delphix. All rights reserved.
+ */
+
#include <sys/zfs_context.h>
#include <sys/spa.h>
#include <sys/vdev_impl.h>
#include <sys/zfs_context.h>
#include <sys/spa.h>
#include <sys/vdev_impl.h>
@@
-50,10
+54,12
@@
too_many_errors(vdev_t *vd, int numerrors)
}
static int
}
static int
-vdev_root_open(vdev_t *vd, uint64_t *asize, uint64_t *ashift)
+vdev_root_open(vdev_t *vd, uint64_t *asize, uint64_t *max_asize,
+ uint64_t *ashift)
{
int lasterror = 0;
int numerrors = 0;
{
int lasterror = 0;
int numerrors = 0;
+ int c;
if (vd->vdev_children == 0) {
vd->vdev_stat.vs_aux = VDEV_AUX_BAD_LABEL;
if (vd->vdev_children == 0) {
vd->vdev_stat.vs_aux = VDEV_AUX_BAD_LABEL;
@@
-62,7
+68,7
@@
vdev_root_open(vdev_t *vd, uint64_t *asize, uint64_t *ashift)
vdev_open_children(vd);
vdev_open_children(vd);
- for (
int
c = 0; c < vd->vdev_children; c++) {
+ for (c = 0; c < vd->vdev_children; c++) {
vdev_t *cvd = vd->vdev_child[c];
if (cvd->vdev_open_error && !cvd->vdev_islog) {
vdev_t *cvd = vd->vdev_child[c];
if (cvd->vdev_open_error && !cvd->vdev_islog) {
@@
-77,6
+83,7
@@
vdev_root_open(vdev_t *vd, uint64_t *asize, uint64_t *ashift)
}
*asize = 0;
}
*asize = 0;
+ *max_asize = 0;
*ashift = 0;
return (0);
*ashift = 0;
return (0);
@@
-85,7
+92,9
@@
vdev_root_open(vdev_t *vd, uint64_t *asize, uint64_t *ashift)
static void
vdev_root_close(vdev_t *vd)
{
static void
vdev_root_close(vdev_t *vd)
{
- for (int c = 0; c < vd->vdev_children; c++)
+ int c;
+
+ for (c = 0; c < vd->vdev_children; c++)
vdev_close(vd->vdev_child[c]);
}
vdev_close(vd->vdev_child[c]);
}
@@
-109,6
+118,8
@@
vdev_ops_t vdev_root_ops = {
NULL, /* io_start - not applicable to the root */
NULL, /* io_done - not applicable to the root */
vdev_root_state_change,
NULL, /* io_start - not applicable to the root */
NULL, /* io_done - not applicable to the root */
vdev_root_state_change,
+ NULL,
+ NULL,
VDEV_TYPE_ROOT, /* name of this vdev type */
B_FALSE /* not a leaf vdev */
};
VDEV_TYPE_ROOT, /* name of this vdev type */
B_FALSE /* not a leaf vdev */
};