mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-27 19:39:35 +03:00
Illumos 5422 - preserve AVL invariants in dn_dbufs
Author: Alex Reece <alex@delphix.com> Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: Paul Dagnelie <paul.dagnelie@delphix.com> Reviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com> Reviewed by: Albert Lee <trisk@nexenta.com> Approved by: Dan McDonald <danmcd@omniti.com> References: https://www.illumos.org/issues/5422 https://github.com/illumos/illumos-gate/commit/a846f19 Ported-by: Chris Dunlop <chris@onthe.net.au> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #3381
This commit is contained in:
parent
e48533383b
commit
7224c67fea
@ -83,16 +83,14 @@ dbuf_compare(const void *x1, const void *x2)
|
|||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (d1->db_state < d2->db_state) {
|
if (d1->db_state == DB_SEARCH) {
|
||||||
|
ASSERT3S(d2->db_state, !=, DB_SEARCH);
|
||||||
return (-1);
|
return (-1);
|
||||||
}
|
} else if (d2->db_state == DB_SEARCH) {
|
||||||
if (d1->db_state > d2->db_state) {
|
ASSERT3S(d1->db_state, !=, DB_SEARCH);
|
||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
ASSERT3S(d1->db_state, !=, DB_SEARCH);
|
|
||||||
ASSERT3S(d2->db_state, !=, DB_SEARCH);
|
|
||||||
|
|
||||||
if ((uintptr_t)d1 < (uintptr_t)d2) {
|
if ((uintptr_t)d1 < (uintptr_t)d2) {
|
||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user