aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Caputi <tcaputi@datto.com>2018-12-14 18:04:11 +0000
committerBrian Behlendorf <behlendorf1@llnl.gov>2018-12-14 18:04:11 +0000
commit2a6078450db6437863f5ce32cfbb06f82e1beae7 (patch)
tree18ce7b11864dfbadcb55f8633d61386c42e8fd31
parent0dd6b6bfcb2c14249a6d6b874e11ff137777d349 (diff)
downloadsrc-2a6078450db6437863f5ce32cfbb06f82e1beae7.tar.gz
src-2a6078450db6437863f5ce32cfbb06f82e1beae7.zip
Fix zap_update() ASSERT from ztest
This patch simply removes an invalid assert from the zap_update() function. The ASSERT is invalid because it does not hold the zap lock from the time it fetches the old value to the time it confirms that it is what it should be. Reviewed by: Matt Ahrens <matt@delphix.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Tom Caputi <tcaputi@datto.com> Closes #8209
-rw-r--r--module/zfs/zap_micro.c12
1 files changed, 0 insertions, 12 deletions
diff --git a/module/zfs/zap_micro.c b/module/zfs/zap_micro.c
index 920b529ca6bb..8b4fd0652a19 100644
--- a/module/zfs/zap_micro.c
+++ b/module/zfs/zap_micro.c
@@ -1283,19 +1283,8 @@ zap_update(objset_t *os, uint64_t zapobj, const char *name,
int integer_size, uint64_t num_integers, const void *val, dmu_tx_t *tx)
{
zap_t *zap;
- ASSERTV(uint64_t oldval);
const uint64_t *intval = val;
-#ifdef ZFS_DEBUG
-
- /*
- * If there is an old value, it shouldn't change across the
- * lockdir (eg, due to bprewrite's xlation).
- */
- if (integer_size == 8 && num_integers == 1)
- (void) zap_lookup(os, zapobj, name, 8, 1, &oldval);
-#endif
-
int err =
zap_lockdir(os, zapobj, tx, RW_WRITER, TRUE, TRUE, FTAG, &zap);
if (err != 0)
@@ -1322,7 +1311,6 @@ zap_update(objset_t *os, uint64_t zapobj, const char *name,
} else {
mzap_ent_t *mze = mze_find(zn);
if (mze != NULL) {
- ASSERT3U(MZE_PHYS(zap, mze)->mze_value, ==, oldval);
MZE_PHYS(zap, mze)->mze_value = *intval;
} else {
mzap_addent(zn, *intval);