mount command outputs usage on correct arguments I enabled root for adb, and then tried the following:

root@crespo:/ # mount /dev/block/platform/s3c-sdhci.0/by-name/media /storage/sdcard0
Usage: mount [-r] [-w] [-o options] [-t type] device directory
1|root@crespo:/ # mount /dev/block/mmcblk0p3 /storage/sdcard0
Usage: mount [-r] [-w] [-o options] [-t type] device directory
1|root@crespo:/ # mount /dev/block/mmcblk0 /storage/sdcard0
Usage: mount [-r] [-w] [-o options] [-t type] device directory


but, even if -t is optional, I get a different error message by adding it:

1|root@crespo:/ # mount -t vfat /dev/block/mmcblk0 /storage/sdcard0
mount: Device or resource busy


maybe the arguments parsing of the command is messed up... seems like a bug in busybox, or is something much more pedestrian going wrong?
It turned out that mount isn't actually supplied by busybox, but by toolbox.

With this knowledge, it was easy to track down the cause of the bug: unlike busybox, since I don't have another "toolbox" implementation with a correctly working mount command, it's likely that the behavior would've been easy to see from the code.

In fact the problem is here at line 330: it checks if type == NULL, but then outputs an USAGE that erroneously shows -t as optional

Compare with busybox at line 1930: // Loop through filesystem types until mount succeeds