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 #734: Use taskq_dispatch_ent() interface
[zfs.git]
/
module
/
zfs
/
spa.c
diff --git
a/module/zfs/spa.c
b/module/zfs/spa.c
index
3599e61
..
0b96497
100644
(file)
--- a/
module/zfs/spa.c
+++ b/
module/zfs/spa.c
@@
-22,6
+22,9
@@
/*
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
*/
/*
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
*/
+/*
+ * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
+ */
/*
* This file contains all the routines used when modifying on-disk SPA state.
/*
* This file contains all the routines used when modifying on-disk SPA state.
@@
-614,9
+617,8
@@
spa_get_errlists(spa_t *spa, avl_tree_t *last, avl_tree_t *scrub)
static taskq_t *
spa_taskq_create(spa_t *spa, const char *name, enum zti_modes mode,
static taskq_t *
spa_taskq_create(spa_t *spa, const char *name, enum zti_modes mode,
- uint_t value)
+ uint_t value
, uint_t flags
)
{
{
- uint_t flags = TASKQ_PREPOPULATE;
boolean_t batch = B_FALSE;
switch (mode) {
boolean_t batch = B_FALSE;
switch (mode) {
@@
-666,13
+668,17
@@
spa_create_zio_taskqs(spa_t *spa)
const zio_taskq_info_t *ztip = &zio_taskqs[t][q];
enum zti_modes mode = ztip->zti_mode;
uint_t value = ztip->zti_value;
const zio_taskq_info_t *ztip = &zio_taskqs[t][q];
enum zti_modes mode = ztip->zti_mode;
uint_t value = ztip->zti_value;
+ uint_t flags = 0;
char name[32];
char name[32];
+ if (t == ZIO_TYPE_WRITE)
+ flags |= TASKQ_NORECLAIM;
+
(void) snprintf(name, sizeof (name),
"%s_%s", zio_type_name[t], zio_taskq_types[q]);
spa->spa_zio_taskq[t][q] =
(void) snprintf(name, sizeof (name),
"%s_%s", zio_type_name[t], zio_taskq_types[q]);
spa->spa_zio_taskq[t][q] =
- spa_taskq_create(spa, name, mode, value);
+ spa_taskq_create(spa, name, mode, value
, flags
);
}
}
}
}
}
}
@@
-1973,7
+1979,7
@@
spa_load_impl(spa_t *spa, uint64_t pool_guid, nvlist_t *config,
cmn_err(CE_WARN, "pool '%s' could not be "
"loaded as it was last accessed by "
"another system (host: %s hostid: 0x%lx). "
cmn_err(CE_WARN, "pool '%s' could not be "
"loaded as it was last accessed by "
"another system (host: %s hostid: 0x%lx). "
- "See: http://
www.sun.com
/msg/ZFS-8000-EY",
+ "See: http://
zfsonlinux.org
/msg/ZFS-8000-EY",
spa_name(spa), hostname,
(unsigned long)hostid);
return (EBADF);
spa_name(spa), hostname,
(unsigned long)hostid);
return (EBADF);