svn commit: r195476 - projects/libprocstat/usr.bin/fstat

Stanislav Sedov stas at FreeBSD.org
Wed Jul 8 18:37:05 UTC 2009


Author: stas
Date: Wed Jul  8 18:37:05 2009
New Revision: 195476
URL: http://svn.freebsd.org/changeset/base/195476

Log:
  - Add dev id detection support for cd9660 filesystem.
  
  Obtained from:	fuser

Modified:
  projects/libprocstat/usr.bin/fstat/cd9660.c

Modified: projects/libprocstat/usr.bin/fstat/cd9660.c
==============================================================================
--- projects/libprocstat/usr.bin/fstat/cd9660.c	Wed Jul  8 17:43:58 2009	(r195475)
+++ projects/libprocstat/usr.bin/fstat/cd9660.c	Wed Jul  8 18:37:05 2009	(r195476)
@@ -50,6 +50,9 @@ __FBSDID("$FreeBSD$");
 #include <sys/mount.h>
 
 #include <isofs/cd9660/cd9660_node.h>
+#define _KERNEL
+#include <isofs/cd9660/iso.h>
+#undef _KERNEL
 
 #include <kvm.h>
 #include <stdio.h>
@@ -61,20 +64,25 @@ int
 isofs_filestat(kvm_t *kd, struct vnode *vp, struct filestat *fsp)
 {
 	struct iso_node isonode;
+	struct iso_mnt mnt;
 
 	if (!kvm_read_all(kd, (unsigned long)VTOI(vp), &isonode,
 	    sizeof(isonode))) {
 		dprintf(stderr, "can't read iso_node at %p\n",
 		    (void *)VTOI(vp));
-		return 0;
+		return (0);
 	}
-#if 0
-	fsp->fsid = dev2udev(isonode.i_dev);
-#endif
+	if (!kvm_read_all(kd, (unsigned long)isonode.i_mnt, &mnt,
+	    sizeof(mnt))) {
+		dprintf(stderr, "can't read iso_mnt at %p\n",
+		    (void *)VTOI(vp));
+		return (0);
+	}
+	fsp->fsid = dev2udev(kd, mnt.im_dev);
 	fsp->mode = (mode_t)isonode.inode.iso_mode;
 	fsp->rdev = isonode.inode.iso_rdev;
 
 	fsp->fileid = (long)isonode.i_number;
 	fsp->size = (u_long)isonode.i_size;
-	return 1;
+	return (1);
 }


More information about the svn-src-projects mailing list