modprobe: emit "can't open 'modules.dep': (errno)" instead of "module not found"

*: s/can't open %s/can't open '%s'/, it's better to use same string.

function                                             old     new   delta
do_modprobe                                          588     601     +13
config_file_action                                   339     345      +6
modprobe_main                                        565     570      +5
unable_to_open                                        14      16      +2
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 4/0 up/down: 26/0)               Total: 26 bytes
   text    data     bss     dec     hex filename
 816800     476    7892  825168   c9750 busybox_old
 816812     476    7892  825180   c975c busybox_unstripped
This commit is contained in:
Denis Vlasenko 2009-03-03 18:47:56 +00:00
parent 787a492f23
commit 9604e1b8fc
5 changed files with 19 additions and 18 deletions

View File

@ -100,8 +100,7 @@ static int FAST_FUNC config_file_action(const char *filename,
} }
config_close(p); config_close(p);
error: error:
if (ENABLE_FEATURE_CLEAN_UP) RELEASE_CONFIG_BUFFER(modname);
RELEASE_CONFIG_BUFFER(modname);
return rc; return rc;
} }
@ -141,8 +140,13 @@ static int do_modprobe(struct modprobe_conf *conf, const char *module)
int rc = -1; int rc = -1;
p = config_open2(CONFIG_DEFAULT_DEPMOD_FILE, fopen_for_read); p = config_open2(CONFIG_DEFAULT_DEPMOD_FILE, fopen_for_read);
/* Modprobe does not work at all without modprobe.dep,
* even if the full module name is given. Returning error here
* was making us later confuse user with this message:
* "module /full/path/to/existing/file/module.ko not found".
* It's better to die immediately, with good message: */
if (p == NULL) if (p == NULL)
goto error; bb_perror_msg_and_die("can't open '%s'", CONFIG_DEFAULT_DEPMOD_FILE);
while (config_read(p, tokens, 2, 1, "# \t", PARSE_NORMAL)) { while (config_read(p, tokens, 2, 1, "# \t", PARSE_NORMAL)) {
colon = last_char_is(tokens[0], ':'); colon = last_char_is(tokens[0], ':');
@ -179,23 +183,21 @@ static int do_modprobe(struct modprobe_conf *conf, const char *module)
rc = bb_init_module(fn, options); rc = bb_init_module(fn, options);
if (rc == 0) if (rc == 0)
llist_add_to(&loaded, xstrdup(modname)); llist_add_to(&loaded, xstrdup(modname));
if (ENABLE_FEATURE_CLEAN_UP) free(options);
free(options);
} }
if (ENABLE_FEATURE_CLEAN_UP) free(fn);
free(fn);
} }
error_not_found: error_not_found:
config_close(p); config_close(p);
error:
if (ENABLE_FEATURE_CLEAN_UP)
RELEASE_CONFIG_BUFFER(modname);
if (rc > 0 && !(option_mask32 & INSMOD_OPT_SILENT)) if (rc > 0 && !(option_mask32 & INSMOD_OPT_SILENT))
bb_error_msg("failed to %sload module %s: %s", bb_error_msg("failed to %sload module %s: %s",
(option_mask32 & MODPROBE_OPT_REMOVE) ? "un" : "", (option_mask32 & MODPROBE_OPT_REMOVE) ? "un" : "",
module, moderror(rc)); module, moderror(rc));
RELEASE_CONFIG_BUFFER(modname);
return rc; return rc;
} }
@ -278,8 +280,7 @@ int modprobe_main(int argc UNUSED_PARAM, char **argv)
char *realname = llist_pop(&conf->aliases); char *realname = llist_pop(&conf->aliases);
if (check_blacklist(conf, realname)) if (check_blacklist(conf, realname))
do_modprobe(conf, realname); do_modprobe(conf, realname);
if (ENABLE_FEATURE_CLEAN_UP) free(realname);
free(realname);
} }
} }
argv++; argv++;

View File

@ -325,7 +325,7 @@ Find processes which use FILEs or PORTs
free(proto); free(proto);
} else { /* FILE */ } else { /* FILE */
if (!file_to_dev_inode(*pp, &dev, &inode)) if (!file_to_dev_inode(*pp, &dev, &inode))
bb_perror_msg_and_die("can't open %s", *pp); bb_perror_msg_and_die("can't open '%s'", *pp);
ilist = add_inode(ilist, dev, inode); ilist = add_inode(ilist, dev, inode);
} }
pp++; pp++;

View File

@ -4540,7 +4540,7 @@ forkchild(struct job *jp, /*union node *n,*/ int mode)
if (jp->nprocs == 0) { if (jp->nprocs == 0) {
close(0); close(0);
if (open(bb_dev_null, O_RDONLY) != 0) if (open(bb_dev_null, O_RDONLY) != 0)
ash_msg_and_raise_error("can't open %s", bb_dev_null); ash_msg_and_raise_error("can't open '%s'", bb_dev_null);
} }
} }
if (!oldlvl) { if (!oldlvl) {
@ -9573,7 +9573,7 @@ setinputfile(const char *fname, int flags)
if (fd < 0) { if (fd < 0) {
if (flags & INPUT_NOFILE_OK) if (flags & INPUT_NOFILE_OK)
goto out; goto out;
ash_msg_and_raise_error("can't open %s", fname); ash_msg_and_raise_error("can't open '%s'", fname);
} }
if (fd < 10) { if (fd < 10) {
fd2 = copyfd(fd, 10); fd2 = copyfd(fd, 10);

View File

@ -83,7 +83,7 @@ struct partition {
unsigned char size4[4]; /* nr of sectors in partition */ unsigned char size4[4]; /* nr of sectors in partition */
} PACKED; } PACKED;
static const char unable_to_open[] ALIGN1 = "can't open %s"; static const char unable_to_open[] ALIGN1 = "can't open '%s'";
static const char unable_to_read[] ALIGN1 = "can't read from %s"; static const char unable_to_read[] ALIGN1 = "can't read from %s";
static const char unable_to_seek[] ALIGN1 = "can't seek on %s"; static const char unable_to_seek[] ALIGN1 = "can't seek on %s";

View File

@ -69,7 +69,7 @@ int umount_main(int argc UNUSED_PARAM, char **argv)
fp = setmntent(bb_path_mtab_file, "r"); fp = setmntent(bb_path_mtab_file, "r");
if (!fp) { if (!fp) {
if (opt & OPT_ALL) if (opt & OPT_ALL)
bb_error_msg_and_die("can't open %s", bb_path_mtab_file); bb_error_msg_and_die("can't open '%s'", bb_path_mtab_file);
} else { } else {
while (getmntent_r(fp, &me, path, PATH_MAX)) { while (getmntent_r(fp, &me, path, PATH_MAX)) {
/* Match fstype if passed */ /* Match fstype if passed */