rmmod: fix bad error message
No binary (build failed)
—
(log yok)
| @@ -461,9 +461,8 @@ static int do_modprobe(struct module_entry *m) | |
| rc = bb_delete_module(m2->modname, O_EXCL); | |
| if (rc) { | |
| if (first) { | |
| - | bb_error_msg("can't unload module %s: %s", |
| - | humanly_readable_name(m2), |
| - | moderror(rc)); |
| + | bb_perror_msg("can't unload module %s", |
| + | humanly_readable_name(m2)); |
| break; | |
| } | |
| } else { | |
| @@ -622,7 +621,7 @@ int modprobe_main(int argc UNUSED_PARAM, char **argv) | |
| * autoclean will be removed". | |
| */ | |
| if (bb_delete_module(NULL, O_NONBLOCK | O_EXCL) != 0) | |
| - | bb_perror_msg_and_die("rmmod"); |
| + | bb_perror_nomsg_and_die(); |
| } | |
| return EXIT_SUCCESS; | |
| } | |
| @@ -190,6 +190,11 @@ int FAST_FUNC bb_delete_module(const char *module, unsigned int flags) | |
| return errno; | |
| } | |
| + | /* Note: not suitable for delete_module() errnos. |
| + | * For them, probably only EWOULDBLOCK needs explaining: |
| + | * "Other modules depend on us". So far we don't do such |
| + | * translation and don't use moderror() for removal errors. |
| + | */ |
| const char* FAST_FUNC moderror(int err) | |
| { | |
| switch (err) { | |
| @@ -28,7 +28,7 @@ | |
| int rmmod_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | |
| int rmmod_main(int argc UNUSED_PARAM, char **argv) | |
| { | |
| - | int n; |
| + | int n, err; |
| unsigned flags = O_NONBLOCK | O_EXCL; | |
| /* Parse command line. */ | |
| @@ -40,7 +40,8 @@ int rmmod_main(int argc UNUSED_PARAM, char **argv) | |
| flags |= O_TRUNC; | |
| if (n & 4) { | |
| /* Unload _all_ unused modules via NULL delete_module() call */ | |
| - | if (bb_delete_module(NULL, flags) != 0 && errno != EFAULT) |
| + | err = bb_delete_module(NULL, flags); |
| + | if (err && err != EFAULT) |
| bb_perror_msg_and_die("rmmod"); | |
| return EXIT_SUCCESS; | |
| } | |
| @@ -58,9 +59,10 @@ int rmmod_main(int argc UNUSED_PARAM, char **argv) | |
| safe_strncpy(modname, bname, MODULE_NAME_LEN); | |
| else | |
| filename2modname(bname, modname); | |
| - | if (bb_delete_module(modname, flags)) |
| - | bb_error_msg_and_die("can't unload '%s': %s", |
| - | modname, moderror(errno)); |
| + | err = bb_delete_module(modname, flags); |
| + | if (err) |
| + | bb_perror_msg_and_die("can't unload module '%s'", |
| + | modname); |
| } | |
| return EXIT_SUCCESS; | |