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
Temporarily disable the reguid test.
[zfs.git]
/
module
/
zfs
/
dsl_pool.c
diff --git
a/module/zfs/dsl_pool.c
b/module/zfs/dsl_pool.c
index
ba42f0b
..
3b285df
100644
(file)
--- a/
module/zfs/dsl_pool.c
+++ b/
module/zfs/dsl_pool.c
@@
-20,6
+20,7
@@
*/
/*
* 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 (c) 2011 by Delphix. All rights reserved.
*/
#include <sys/dsl_pool.h>
*/
#include <sys/dsl_pool.h>
@@
-291,7
+292,10
@@
static int
deadlist_enqueue_cb(void *arg, const blkptr_t *bp, dmu_tx_t *tx)
{
dsl_deadlist_t *dl = arg;
deadlist_enqueue_cb(void *arg, const blkptr_t *bp, dmu_tx_t *tx)
{
dsl_deadlist_t *dl = arg;
+ dsl_pool_t *dp = dmu_objset_pool(dl->dl_os);
+ rw_enter(&dp->dp_config_rwlock, RW_READER);
dsl_deadlist_insert(dl, bp, tx);
dsl_deadlist_insert(dl, bp, tx);
+ rw_exit(&dp->dp_config_rwlock);
return (0);
}
return (0);
}
@@
-517,8
+521,10
@@
dsl_pool_tempreserve_space(dsl_pool_t *dp, uint64_t space, dmu_tx_t *tx)
reserved = dp->dp_space_towrite[tx->tx_txg & TXG_MASK]
+ dp->dp_tempreserved[tx->tx_txg & TXG_MASK] / 2;
reserved = dp->dp_space_towrite[tx->tx_txg & TXG_MASK]
+ dp->dp_tempreserved[tx->tx_txg & TXG_MASK] / 2;
- if (reserved && reserved > write_limit)
+ if (reserved && reserved > write_limit) {
+ DMU_TX_STAT_BUMP(dmu_tx_write_limit);
return (ERESTART);
return (ERESTART);
+ }
}
atomic_add_64(&dp->dp_tempreserved[tx->tx_txg & TXG_MASK], space);
}
atomic_add_64(&dp->dp_tempreserved[tx->tx_txg & TXG_MASK], space);