Changeset View
Changeset View
Standalone View
Standalone View
head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c
Show First 20 Lines • Show All 343 Lines • ▼ Show 20 Lines | |||||
dmu_objset_open_impl(spa_t *spa, dsl_dataset_t *ds, blkptr_t *bp, | dmu_objset_open_impl(spa_t *spa, dsl_dataset_t *ds, blkptr_t *bp, | ||||
objset_t **osp) | objset_t **osp) | ||||
{ | { | ||||
objset_t *os; | objset_t *os; | ||||
int i, err; | int i, err; | ||||
ASSERT(ds == NULL || MUTEX_HELD(&ds->ds_opening_lock)); | ASSERT(ds == NULL || MUTEX_HELD(&ds->ds_opening_lock)); | ||||
#if 0 | |||||
/* | /* | ||||
* The $ORIGIN dataset (if it exists) doesn't have an associated | * The $ORIGIN dataset (if it exists) doesn't have an associated | ||||
* objset, so there's no reason to open it. The $ORIGIN dataset | * objset, so there's no reason to open it. The $ORIGIN dataset | ||||
* will not exist on pools older than SPA_VERSION_ORIGIN. | * will not exist on pools older than SPA_VERSION_ORIGIN. | ||||
*/ | */ | ||||
if (ds != NULL && spa_get_dsl(spa) != NULL && | if (ds != NULL && spa_get_dsl(spa) != NULL && | ||||
spa_get_dsl(spa)->dp_origin_snap != NULL) { | spa_get_dsl(spa)->dp_origin_snap != NULL) { | ||||
ASSERT3P(ds->ds_dir, !=, | ASSERT3P(ds->ds_dir, !=, | ||||
spa_get_dsl(spa)->dp_origin_snap->ds_dir); | spa_get_dsl(spa)->dp_origin_snap->ds_dir); | ||||
} | } | ||||
#endif | |||||
os = kmem_zalloc(sizeof (objset_t), KM_SLEEP); | os = kmem_zalloc(sizeof (objset_t), KM_SLEEP); | ||||
os->os_dsl_dataset = ds; | os->os_dsl_dataset = ds; | ||||
os->os_spa = spa; | os->os_spa = spa; | ||||
os->os_rootbp = bp; | os->os_rootbp = bp; | ||||
if (!BP_IS_HOLE(os->os_rootbp)) { | if (!BP_IS_HOLE(os->os_rootbp)) { | ||||
arc_flags_t aflags = ARC_FLAG_WAIT; | arc_flags_t aflags = ARC_FLAG_WAIT; | ||||
zbookmark_phys_t zb; | zbookmark_phys_t zb; | ||||
▲ Show 20 Lines • Show All 1,978 Lines • Show Last 20 Lines |