Follow 0/-E convention for module load errors

Because errors during module load are so rare it went unnoticed that
it was possible that a positive errno was returned.  This would result
in the module being loaded, nothing being initialized, and a system
panic shortly thereafter.  This is what was causing the hard failures
in the automated testing.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
This commit is contained in:
Brian Behlendorf 2015-11-16 15:00:38 -08:00
parent 256fa983f4
commit 3d8d245fb3
2 changed files with 2 additions and 6 deletions

4
TEST
View File

@ -71,14 +71,10 @@ case "$BB_NAME" in
Amazon*) Amazon*)
;; ;;
CentOS*) CentOS*)
# Fails vnode:vn_rdwr, CentOS 6.
TEST_SPLAT_SKIP="yes"
# Sporadic segmentation faults # Sporadic segmentation faults
TEST_ZTEST_SKIP="yes" TEST_ZTEST_SKIP="yes"
# Sporadic VERIFY(!zilog_is_dirty(zilog)) failed # Sporadic VERIFY(!zilog_is_dirty(zilog)) failed
TEST_ZILTEST_SKIP="yes" TEST_ZILTEST_SKIP="yes"
# Hangs loading modules
TEST_ZCONFIG_SKIP="yes"
;; ;;
Debian*) Debian*)
;; ;;

View File

@ -6011,7 +6011,7 @@ _init(void)
{ {
int error; int error;
error = vn_set_pwd("/"); error = -vn_set_pwd("/");
if (error) { if (error) {
printk(KERN_NOTICE printk(KERN_NOTICE
"ZFS: Warning unable to set pwd to '/': %d\n", error); "ZFS: Warning unable to set pwd to '/': %d\n", error);
@ -6021,7 +6021,7 @@ _init(void)
spa_init(FREAD | FWRITE); spa_init(FREAD | FWRITE);
zfs_init(); zfs_init();
if ((error = zvol_init()) != 0) if ((error = -zvol_init()) != 0)
goto out1; goto out1;
zfs_ioctl_init(); zfs_ioctl_init();