]> granicus.if.org Git - zfs/commitdiff
Create minors for all zvols
authorBrian Behlendorf <behlendorf1@llnl.gov>
Wed, 16 Feb 2011 17:40:29 +0000 (09:40 -0800)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Wed, 16 Feb 2011 17:50:06 +0000 (09:50 -0800)
It was noticed that when you have zvols in multiple datasets
not all of the zvol devices are created at module load time.
Fajarnugraha did the leg work to identify that the root cause of
this bug is a non-zero return value from zvol_create_minors_cb().

Returning a non-zero value from the dmu_objset_find_spa() callback
function results in aborting processing the remaining children in
a dataset.  Since we want to ensure that the callback in run on
all children regardless of error simply unconditionally return
zero from the zvol_create_minors_cb().  This callback function
is solely used for this purpose so surpressing the error is safe.

Closes #96

module/zfs/zvol.c

index 3d829a3d413942e521832e7e6b082c6897ba98e6..04c885f68e225958065518c960108f13ed9249e0 100644 (file)
@@ -1230,7 +1230,8 @@ zvol_create_minors_cb(spa_t *spa, uint64_t dsobj,
        if (strchr(dsname, '/') == NULL)
                return 0;
 
-       return __zvol_create_minor(dsname);
+       (void) __zvol_create_minor(dsname);
+       return (0);
 }
 
 /*