From a0dba38cd46366eb1f3a8b5f10a940a0156e253a Mon Sep 17 00:00:00 2001 From: Brian Behlendorf Date: Mon, 16 Nov 2015 15:00:38 -0800 Subject: [PATCH] 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 --- TEST | 4 ---- module/zfs/zfs_ioctl.c | 4 ++-- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/TEST b/TEST index 05818faf7e..eba35a37dc 100644 --- a/TEST +++ b/TEST @@ -71,14 +71,10 @@ case "$BB_NAME" in Amazon*) ;; CentOS*) - # Fails vnode:vn_rdwr, CentOS 6. - TEST_SPLAT_SKIP="yes" # Sporadic segmentation faults TEST_ZTEST_SKIP="yes" # Sporadic VERIFY(!zilog_is_dirty(zilog)) failed TEST_ZILTEST_SKIP="yes" - # Hangs loading modules - TEST_ZCONFIG_SKIP="yes" ;; Debian*) ;; diff --git a/module/zfs/zfs_ioctl.c b/module/zfs/zfs_ioctl.c index 7ce19693e2..d026e92d69 100644 --- a/module/zfs/zfs_ioctl.c +++ b/module/zfs/zfs_ioctl.c @@ -6011,7 +6011,7 @@ _init(void) { int error; - error = vn_set_pwd("/"); + error = -vn_set_pwd("/"); if (error) { printk(KERN_NOTICE "ZFS: Warning unable to set pwd to '/': %d\n", error); @@ -6021,7 +6021,7 @@ _init(void) spa_init(FREAD | FWRITE); zfs_init(); - if ((error = zvol_init()) != 0) + if ((error = -zvol_init()) != 0) goto out1; zfs_ioctl_init();