summaryrefslogtreecommitdiffstats
path: root/usr.bin/fstat
diff options
context:
space:
mode:
authorjmg <jmg@FreeBSD.org>2003-06-24 08:18:18 +0000
committerjmg <jmg@FreeBSD.org>2003-06-24 08:18:18 +0000
commitcb1a37be82ccba1097c3173081001fbadf92364d (patch)
tree2eb86cae5d24d6fbbc9c6504a5d1b67d70157c9b /usr.bin/fstat
parent479c27ecda8a4c3fac6ce64e8db853c07aa12b34 (diff)
downloadFreeBSD-src-cb1a37be82ccba1097c3173081001fbadf92364d.zip
FreeBSD-src-cb1a37be82ccba1097c3173081001fbadf92364d.tar.gz
fix this code properly. msdosfs can't have device nodes on them.
comment how to read device nodes from ufs (if an adventurous soul wants to fix it!). Reviewed by: bde
Diffstat (limited to 'usr.bin/fstat')
-rw-r--r--usr.bin/fstat/cd9660.c2
-rw-r--r--usr.bin/fstat/fstat.c6
-rw-r--r--usr.bin/fstat/msdosfs.c2
3 files changed, 7 insertions, 3 deletions
diff --git a/usr.bin/fstat/cd9660.c b/usr.bin/fstat/cd9660.c
index a11a9c4..c289a7d 100644
--- a/usr.bin/fstat/cd9660.c
+++ b/usr.bin/fstat/cd9660.c
@@ -70,7 +70,7 @@ isofs_filestat(vp, fsp)
}
fsp->fsid = dev2udev(isonode.i_dev);
fsp->mode = (mode_t)isonode.inode.iso_mode;
- fsp->rdev = isonode.i_dev;
+ fsp->rdev = isonode.inode.iso_rdev;
fsp->fileid = (long)isonode.i_number;
fsp->size = (u_long)isonode.i_size;
diff --git a/usr.bin/fstat/fstat.c b/usr.bin/fstat/fstat.c
index b8f6c3c..3612582 100644
--- a/usr.bin/fstat/fstat.c
+++ b/usr.bin/fstat/fstat.c
@@ -594,7 +594,11 @@ ufs_filestat(vp, fsp)
fsp->mode = (mode_t)inode.i_mode;
fsp->size = (u_long)inode.i_size;
#if should_be_but_is_hard
- fsp->rdev = inode.i_rdev;
+ /* XXX - need to load i_ump and i_din[12] from kernel memory */
+ if (inode.i_ump->um_fstype == UFS1)
+ fsp->rdev = inode.i_din1->di_rdev;
+ else
+ fsp->rdev = inode.i_din2->di_rdev;
#else
fsp->rdev = 0;
#endif
diff --git a/usr.bin/fstat/msdosfs.c b/usr.bin/fstat/msdosfs.c
index c428e57..6766677 100644
--- a/usr.bin/fstat/msdosfs.c
+++ b/usr.bin/fstat/msdosfs.c
@@ -120,7 +120,7 @@ msdosfs_filestat(vp, fsp)
fsp->mode |= denode.de_Attributes & ATTR_DIRECTORY ? S_IFDIR : S_IFREG;
fsp->size = denode.de_FileSize;
- fsp->rdev = denode.de_dev;
+ fsp->rdev = 0;
/*
* XXX -
OpenPOWER on IntegriCloud