List cleanup and use of list_node_init initializer
This commit is contained in:
parent
2ea04834bf
commit
bec036636e
5
.topmsg
5
.topmsg
|
@ -5,4 +5,9 @@ Remove all instances of list handling where the API is not used
|
||||||
and instead list data members are directly accessed. Doing this
|
and instead list data members are directly accessed. Doing this
|
||||||
sort of thing is bad for portability.
|
sort of thing is bad for portability.
|
||||||
|
|
||||||
|
Additionally, ensure that list_link_init() is called on newly
|
||||||
|
created list nodes. This ensures the node is properly initialized
|
||||||
|
and does not rely on the assumption that zero'ing the list_node_t
|
||||||
|
via kmem_zalloc() is the same as proper initialization.
|
||||||
|
|
||||||
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
|
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
|
||||||
|
|
|
@ -1018,6 +1018,7 @@ dbuf_dirty(dmu_buf_impl_t *db, dmu_tx_t *tx)
|
||||||
* transaction group won't leak out when we sync the older txg.
|
* transaction group won't leak out when we sync the older txg.
|
||||||
*/
|
*/
|
||||||
dr = kmem_zalloc(sizeof (dbuf_dirty_record_t), KM_SLEEP);
|
dr = kmem_zalloc(sizeof (dbuf_dirty_record_t), KM_SLEEP);
|
||||||
|
list_link_init(&dr->dr_dirty_node);
|
||||||
if (db->db_level == 0) {
|
if (db->db_level == 0) {
|
||||||
void *data_old = db->db_buf;
|
void *data_old = db->db_buf;
|
||||||
|
|
||||||
|
|
|
@ -280,6 +280,13 @@ dnode_create(objset_impl_t *os, dnode_phys_t *dnp, dmu_buf_impl_t *db,
|
||||||
dn->dn_dbuf = db;
|
dn->dn_dbuf = db;
|
||||||
dn->dn_phys = dnp;
|
dn->dn_phys = dnp;
|
||||||
|
|
||||||
|
list_link_init(&dn->dn_link);
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
for (i = 0; i < TXG_SIZE; i++)
|
||||||
|
list_link_init(&dn->dn_dirty_link[i]);
|
||||||
|
}
|
||||||
|
|
||||||
if (dnp->dn_datablkszsec)
|
if (dnp->dn_datablkszsec)
|
||||||
dnode_setdblksz(dn, dnp->dn_datablkszsec << SPA_MINBLOCKSHIFT);
|
dnode_setdblksz(dn, dnp->dn_datablkszsec << SPA_MINBLOCKSHIFT);
|
||||||
dn->dn_indblkshift = dnp->dn_indblkshift;
|
dn->dn_indblkshift = dnp->dn_indblkshift;
|
||||||
|
|
|
@ -85,9 +85,6 @@ struct dmu_tx;
|
||||||
* etc.
|
* etc.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define LIST_LINK_INACTIVE(link) \
|
|
||||||
((link)->list_next == NULL && (link)->list_prev == NULL)
|
|
||||||
|
|
||||||
struct dmu_buf_impl;
|
struct dmu_buf_impl;
|
||||||
|
|
||||||
typedef enum override_states {
|
typedef enum override_states {
|
||||||
|
|
Loading…
Reference in New Issue