From cb1a37be82ccba1097c3173081001fbadf92364d Mon Sep 17 00:00:00 2001 From: jmg Date: Tue, 24 Jun 2003 08:18:18 +0000 Subject: 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 --- usr.bin/fstat/cd9660.c | 2 +- usr.bin/fstat/fstat.c | 6 +++++- usr.bin/fstat/msdosfs.c | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) (limited to 'usr.bin/fstat') 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 - -- cgit v1.1