usr/src/uts/common/fs/zfs/vdev.c
changeset 2856 6f4d5ee1906a
parent 2391 2fa3fd1db808
child 2885 c0259887ebbc
equal deleted inserted replaced
2855:4d8a6b4dda79 2856:6f4d5ee1906a
   300 	vd->vdev_guid_sum = guid;
   300 	vd->vdev_guid_sum = guid;
   301 	vd->vdev_ops = ops;
   301 	vd->vdev_ops = ops;
   302 	vd->vdev_state = VDEV_STATE_CLOSED;
   302 	vd->vdev_state = VDEV_STATE_CLOSED;
   303 
   303 
   304 	mutex_init(&vd->vdev_dtl_lock, NULL, MUTEX_DEFAULT, NULL);
   304 	mutex_init(&vd->vdev_dtl_lock, NULL, MUTEX_DEFAULT, NULL);
       
   305 	mutex_init(&vd->vdev_stat_lock, NULL, MUTEX_DEFAULT, NULL);
   305 	space_map_create(&vd->vdev_dtl_map, 0, -1ULL, 0, &vd->vdev_dtl_lock);
   306 	space_map_create(&vd->vdev_dtl_map, 0, -1ULL, 0, &vd->vdev_dtl_lock);
   306 	space_map_create(&vd->vdev_dtl_scrub, 0, -1ULL, 0, &vd->vdev_dtl_lock);
   307 	space_map_create(&vd->vdev_dtl_scrub, 0, -1ULL, 0, &vd->vdev_dtl_lock);
   307 	txg_list_create(&vd->vdev_ms_list,
   308 	txg_list_create(&vd->vdev_ms_list,
   308 	    offsetof(struct metaslab, ms_txg_node));
   309 	    offsetof(struct metaslab, ms_txg_node));
   309 	txg_list_create(&vd->vdev_dtl_list,
   310 	txg_list_create(&vd->vdev_dtl_list,
   336 	space_map_destroy(&vd->vdev_dtl_map);
   337 	space_map_destroy(&vd->vdev_dtl_map);
   337 	space_map_vacate(&vd->vdev_dtl_scrub, NULL, NULL);
   338 	space_map_vacate(&vd->vdev_dtl_scrub, NULL, NULL);
   338 	space_map_destroy(&vd->vdev_dtl_scrub);
   339 	space_map_destroy(&vd->vdev_dtl_scrub);
   339 	mutex_exit(&vd->vdev_dtl_lock);
   340 	mutex_exit(&vd->vdev_dtl_lock);
   340 	mutex_destroy(&vd->vdev_dtl_lock);
   341 	mutex_destroy(&vd->vdev_dtl_lock);
       
   342 	mutex_destroy(&vd->vdev_stat_lock);
   341 
   343 
   342 	if (vd == spa->spa_root_vdev)
   344 	if (vd == spa->spa_root_vdev)
   343 		spa->spa_root_vdev = NULL;
   345 		spa->spa_root_vdev = NULL;
   344 
   346 
   345 	kmem_free(vd, sizeof (vdev_t));
   347 	kmem_free(vd, sizeof (vdev_t));