Recreate volume and snapshot /dev links during module load.
Links in /dev for volumes/snapshots were only being created at volume/snapshot creation time. Those links are now also created dynamically at module load time based on the spa config. In other words all you need to do to get access to your zfs datasets after a reboot is load the module. It's magic!
This commit is contained in:
parent
da41056e9b
commit
cdd590f8b9
|
@ -1095,6 +1095,25 @@ out:
|
|||
return (-error);
|
||||
}
|
||||
|
||||
static int
|
||||
zvol_create_minors_cb(spa_t *spa, uint64_t dsobj,
|
||||
const char *dsname, void *arg)
|
||||
{
|
||||
return zvol_create_minor(dsname);
|
||||
}
|
||||
|
||||
static void
|
||||
zvol_create_minors(void)
|
||||
{
|
||||
spa_t *spa = NULL;
|
||||
|
||||
mutex_enter(&spa_namespace_lock);
|
||||
while ((spa = spa_next(spa)) != NULL)
|
||||
(void) dmu_objset_find_spa(NULL, spa_name(spa), zvol_create_minors_cb,
|
||||
NULL, DS_FIND_CHILDREN | DS_FIND_SNAPSHOTS);
|
||||
mutex_exit(&spa_namespace_lock);
|
||||
}
|
||||
|
||||
/*
|
||||
* Remove a block device minor node for the specified volume.
|
||||
*/
|
||||
|
@ -1187,6 +1206,8 @@ zvol_init(void)
|
|||
list_create(&zvol_state_list, sizeof (zvol_state_t),
|
||||
offsetof(zvol_state_t, zv_next));
|
||||
|
||||
zvol_create_minors();
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue