mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-26 04:07:45 +03:00
Rebase master to b108
This commit is contained in:
+8
-8
@@ -19,7 +19,7 @@
|
||||
* CDDL HEADER END
|
||||
*/
|
||||
/*
|
||||
* Copyright 2008 Sun Microsystems, Inc. All rights reserved.
|
||||
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
|
||||
* Use is subject to license terms.
|
||||
*/
|
||||
|
||||
@@ -469,7 +469,7 @@ dbuf_read_impl(dmu_buf_impl_t *db, zio_t *zio, uint32_t *flags)
|
||||
|
||||
ASSERT3U(bonuslen, <=, db->db.db_size);
|
||||
db->db.db_data = zio_buf_alloc(DN_MAX_BONUSLEN);
|
||||
arc_space_consume(DN_MAX_BONUSLEN);
|
||||
arc_space_consume(DN_MAX_BONUSLEN, ARC_SPACE_OTHER);
|
||||
if (bonuslen < DN_MAX_BONUSLEN)
|
||||
bzero(db->db.db_data, DN_MAX_BONUSLEN);
|
||||
bcopy(DN_BONUS(dn->dn_phys), db->db.db_data,
|
||||
@@ -665,7 +665,7 @@ dbuf_fix_old_data(dmu_buf_impl_t *db, uint64_t txg)
|
||||
if (db->db_blkid == DB_BONUS_BLKID) {
|
||||
/* Note that the data bufs here are zio_bufs */
|
||||
dr->dt.dl.dr_data = zio_buf_alloc(DN_MAX_BONUSLEN);
|
||||
arc_space_consume(DN_MAX_BONUSLEN);
|
||||
arc_space_consume(DN_MAX_BONUSLEN, ARC_SPACE_OTHER);
|
||||
bcopy(db->db.db_data, dr->dt.dl.dr_data, DN_MAX_BONUSLEN);
|
||||
} else if (refcount_count(&db->db_holds) > db->db_dirtycnt) {
|
||||
int size = db->db.db_size;
|
||||
@@ -1341,7 +1341,7 @@ dbuf_clear(dmu_buf_impl_t *db)
|
||||
ASSERT(db->db.db_data != NULL);
|
||||
if (db->db_blkid == DB_BONUS_BLKID) {
|
||||
zio_buf_free(db->db.db_data, DN_MAX_BONUSLEN);
|
||||
arc_space_return(DN_MAX_BONUSLEN);
|
||||
arc_space_return(DN_MAX_BONUSLEN, ARC_SPACE_OTHER);
|
||||
}
|
||||
db->db.db_data = NULL;
|
||||
db->db_state = DB_UNCACHED;
|
||||
@@ -1463,7 +1463,7 @@ dbuf_create(dnode_t *dn, uint8_t level, uint64_t blkid,
|
||||
db->db.db_offset = DB_BONUS_BLKID;
|
||||
db->db_state = DB_UNCACHED;
|
||||
/* the bonus dbuf is not placed in the hash table */
|
||||
arc_space_consume(sizeof (dmu_buf_impl_t));
|
||||
arc_space_consume(sizeof (dmu_buf_impl_t), ARC_SPACE_OTHER);
|
||||
return (db);
|
||||
} else {
|
||||
int blocksize =
|
||||
@@ -1490,7 +1490,7 @@ dbuf_create(dnode_t *dn, uint8_t level, uint64_t blkid,
|
||||
list_insert_head(&dn->dn_dbufs, db);
|
||||
db->db_state = DB_UNCACHED;
|
||||
mutex_exit(&dn->dn_dbufs_mtx);
|
||||
arc_space_consume(sizeof (dmu_buf_impl_t));
|
||||
arc_space_consume(sizeof (dmu_buf_impl_t), ARC_SPACE_OTHER);
|
||||
|
||||
if (parent && parent != dn->dn_dbuf)
|
||||
dbuf_add_ref(parent, db);
|
||||
@@ -1559,7 +1559,7 @@ dbuf_destroy(dmu_buf_impl_t *db)
|
||||
ASSERT(db->db_data_pending == NULL);
|
||||
|
||||
kmem_cache_free(dbuf_cache, db);
|
||||
arc_space_return(sizeof (dmu_buf_impl_t));
|
||||
arc_space_return(sizeof (dmu_buf_impl_t), ARC_SPACE_OTHER);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -1980,7 +1980,7 @@ dbuf_sync_leaf(dbuf_dirty_record_t *dr, dmu_tx_t *tx)
|
||||
bcopy(*datap, DN_BONUS(dn->dn_phys), dn->dn_phys->dn_bonuslen);
|
||||
if (*datap != db->db.db_data) {
|
||||
zio_buf_free(*datap, DN_MAX_BONUSLEN);
|
||||
arc_space_return(DN_MAX_BONUSLEN);
|
||||
arc_space_return(DN_MAX_BONUSLEN, ARC_SPACE_OTHER);
|
||||
}
|
||||
db->db_data_pending = NULL;
|
||||
drp = &db->db_last_dirty;
|
||||
|
||||
Reference in New Issue
Block a user