Changeset View
Changeset View
Standalone View
Standalone View
sys/contrib/openzfs/module/os/freebsd/zfs/zvol_os.c
Show First 20 Lines • Show All 1,185 Lines • ▼ Show 20 Lines | if (zv->zv_zso->zso_volmode == ZFS_VOLMODE_GEOM) { | ||||
args.mda_devsw = &zvol_cdevsw; | args.mda_devsw = &zvol_cdevsw; | ||||
args.mda_cr = NULL; | args.mda_cr = NULL; | ||||
args.mda_uid = UID_ROOT; | args.mda_uid = UID_ROOT; | ||||
args.mda_gid = GID_OPERATOR; | args.mda_gid = GID_OPERATOR; | ||||
args.mda_mode = 0640; | args.mda_mode = 0640; | ||||
args.mda_si_drv2 = zv; | args.mda_si_drv2 = zv; | ||||
if (make_dev_s(&args, &dev, "%s/%s", ZVOL_DRIVER, newname) | if (make_dev_s(&args, &dev, "%s/%s", ZVOL_DRIVER, newname) | ||||
== 0) { | == 0) { | ||||
dev->si_iosize_max = MAXPHYS; | dev->si_iosize_max = maxphys; | ||||
zsd->zsd_cdev = dev; | zsd->zsd_cdev = dev; | ||||
} | } | ||||
} | } | ||||
strlcpy(zv->zv_name, newname, sizeof (zv->zv_name)); | strlcpy(zv->zv_name, newname, sizeof (zv->zv_name)); | ||||
} | } | ||||
/* | /* | ||||
* Remove minor node for the specified volume. | * Remove minor node for the specified volume. | ||||
▲ Show 20 Lines • Show All 119 Lines • ▼ Show 20 Lines | if (zv->zv_zso->zso_volmode == ZFS_VOLMODE_GEOM) { | ||||
error = make_dev_s(&args, &dev, "%s/%s", ZVOL_DRIVER, name); | error = make_dev_s(&args, &dev, "%s/%s", ZVOL_DRIVER, name); | ||||
if (error != 0) { | if (error != 0) { | ||||
mutex_destroy(&zv->zv_state_lock); | mutex_destroy(&zv->zv_state_lock); | ||||
kmem_free(zv->zv_zso, sizeof (struct zvol_state_os)); | kmem_free(zv->zv_zso, sizeof (struct zvol_state_os)); | ||||
kmem_free(zv, sizeof (*zv)); | kmem_free(zv, sizeof (*zv)); | ||||
dmu_objset_disown(os, B_TRUE, FTAG); | dmu_objset_disown(os, B_TRUE, FTAG); | ||||
goto out_giant; | goto out_giant; | ||||
} | } | ||||
dev->si_iosize_max = MAXPHYS; | dev->si_iosize_max = maxphys; | ||||
zsd->zsd_cdev = dev; | zsd->zsd_cdev = dev; | ||||
} | } | ||||
(void) strlcpy(zv->zv_name, name, MAXPATHLEN); | (void) strlcpy(zv->zv_name, name, MAXPATHLEN); | ||||
rw_init(&zv->zv_suspend_lock, NULL, RW_DEFAULT, NULL); | rw_init(&zv->zv_suspend_lock, NULL, RW_DEFAULT, NULL); | ||||
zfs_rangelock_init(&zv->zv_rangelock, NULL, NULL); | zfs_rangelock_init(&zv->zv_rangelock, NULL, NULL); | ||||
if (dmu_objset_is_snapshot(os) || !spa_writeable(dmu_objset_spa(os))) | if (dmu_objset_is_snapshot(os) || !spa_writeable(dmu_objset_spa(os))) | ||||
zv->zv_flags |= ZVOL_RDONLY; | zv->zv_flags |= ZVOL_RDONLY; | ||||
▲ Show 20 Lines • Show All 137 Lines • Show Last 20 Lines |