9
0
Fork 0

mount: add compatibility to old mount command

the mount command used to have the syntax 'mount <dev> <type> <mountpoint>'.
This was changed to the more Linux like behaviour which specifies the
type with the -t <type> option. If a newer barebox is run on a device
with an older environment the mount command no longer works. This patch
adds compatibility to the old behaviour.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
Sascha Hauer 2012-11-01 18:04:34 +01:00
parent 56371f4e84
commit d74bef2b04
1 changed files with 15 additions and 2 deletions

View File

@ -33,7 +33,8 @@ static int do_mount(int argc, char *argv[])
int opt;
int ret = 0;
struct fs_device_d *fsdev;
char *type = NULL;
const char *type = NULL;
const char *mountpoint, *dev;
if (argc == 1) {
for_each_fs_device(fsdev) {
@ -56,7 +57,19 @@ static int do_mount(int argc, char *argv[])
if (argc < optind + 2)
return COMMAND_ERROR_USAGE;
if ((ret = mount(argv[optind], type, argv[optind + 1]))) {
dev = argv[optind];
if (argc == optind + 3) {
/*
* Old behaviour: mount <dev> <type> <mountpoint>
*/
type = argv[optind + 1];
mountpoint = argv[optind + 2];
} else {
mountpoint = argv[optind + 1];
}
if ((ret = mount(dev, type, mountpoint))) {
perror("mount");
return 1;
}