When busybox df is invoked with a file operand that is a mount point, it still appears to (per strace) read and sequentially stat every file systems listed in /proc/mounts (/proc/self/mounts) until it finds an entry with a matching st_dev. stat() (and thus df) can hang if one of the file systems in /proc/self/mounts is, e.g., an unresponsive hard-mounted NFS file system. df from GNU coreutils 8.22 (and earlier) has an optimization where if a df file operand is a mount point, it will stat only that mount point, avoiding a hang in the scenario where some other file system in /proc/self/mounts is in an unresponsive state that would cause stat() to hang.