summaryrefslogtreecommitdiff
path: root/sysutils/fuser/files/extra::patch-msdosfs.c
blob: 1cf9268ff4761dabfa8f403049371ab9c357de3a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
--- msdosfs.c.orig	2009-06-07 12:53:34.000000000 +0400
+++ msdosfs.c	2009-06-07 12:57:41.000000000 +0400
@@ -72,6 +72,7 @@
 	struct denode		denode;
 	u_long			dirsperblk;
 	struct msdosfsmount	mnt;
+	struct vnode		devvp;
 	int			fileid;
 	int			ret;
 
@@ -90,7 +91,13 @@
 		return 1;
 	}
 
-	fsp->dev = dev2udev(denode.de_dev);
+	ret = KVM_READ(kd, mnt.pm_devvp, &devvp, sizeof(devvp));
+	if (ret != sizeof(devvp)) {
+		warnx("can't read vnode info at %p\n", (void *)mnt.pm_devvp);
+		return 1;
+	}
+
+	fsp->dev = dev2udev(devvp.v_rdev);
 
 	/*
 	 * XXX -