summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJavier Viguera <javier.viguera@digi.com>2012-01-18 00:49:11 (GMT)
committer Denys Vlasenko <vda.linux@googlemail.com>2012-01-18 00:49:11 (GMT)
commitce4f39ac7c6c30e94f7ff392058928bd98347113 (patch)
treee2f7e9ac6e4fbf1b3af4f92fa60b6bf0e7e493f2
parentfdd0b3b398d3ea859d758992ed24eac343a6ee12 (diff)
downloadbusybox-ce4f39ac7c6c30e94f7ff392058928bd98347113.tar.gz
busybox-ce4f39ac7c6c30e94f7ff392058928bd98347113.tar.bz2
find_mount_point: fix find_mount_point for char devices
This allows to find mount points of 'char' devices such as UBI volumes which otherwise fail for example with 'df' command: / # df Filesystem 1K-blocks Used Available Use% Mounted on /dev/root 72091984 12360980 56068924 18% / devtmpfs 115236 4 115232 0% /dev tmpfs 28672 32 28640 0% /tmp /dev/ubi0_0 360268 18348 341920 5% /tmp/mnt/userfs / # df /dev/ubi0_0 Filesystem 1K-blocks Used Available Use% Mounted on devtmpfs 115236 4 115232 0% /dev Signed-off-by: Javier Viguera <javier.viguera@digi.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--libbb/find_mount_point.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/libbb/find_mount_point.c b/libbb/find_mount_point.c
index 56637ad..9676b5f 100644
--- a/libbb/find_mount_point.c
+++ b/libbb/find_mount_point.c
@@ -30,7 +30,8 @@ struct mntent* FAST_FUNC find_mount_point(const char *name, int subdir_too)
devno_of_name = s.st_dev;
block_dev = 0;
- if (S_ISBLK(s.st_mode)) {
+ /* Why S_ISCHR? - UBI volumes use char devices, not block */
+ if (S_ISBLK(s.st_mode) || S_ISCHR(s.st_mode)) {
devno_of_name = s.st_rdev;
block_dev = 1;
}