Fix dbuf eviction assertion

Replace non-fatal assertion with warning.  This was being observed
during testing and it should not be fatal.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
This commit is contained in:
Brian Behlendorf 2010-08-26 10:24:44 -07:00
parent 4d58b69de8
commit 754c6663a3

View File

@ -418,9 +418,13 @@ dnode_evict_dbufs(dnode_t *dn)
if (evicting) if (evicting)
delay(1); delay(1);
pass++; pass++;
ASSERT(pass < 100); /* sanity check */ if ((pass % 100) == 0)
dprintf("Exceeded %d passes evicting dbufs\n", pass);
} while (progress); } while (progress);
if (pass >= 100)
dprintf("Required %d passes to evict dbufs\n", pass);
rw_enter(&dn->dn_struct_rwlock, RW_WRITER); rw_enter(&dn->dn_struct_rwlock, RW_WRITER);
if (dn->dn_bonus && refcount_is_zero(&dn->dn_bonus->db_holds)) { if (dn->dn_bonus && refcount_is_zero(&dn->dn_bonus->db_holds)) {
mutex_enter(&dn->dn_bonus->db_mtx); mutex_enter(&dn->dn_bonus->db_mtx);