diff options
| author | Tom Rhodes <trhodes@FreeBSD.org> | 2002-08-16 05:13:42 +0000 |
|---|---|---|
| committer | Tom Rhodes <trhodes@FreeBSD.org> | 2002-08-16 05:13:42 +0000 |
| commit | b5cdbc6dae3f072b67fd123a1a86f4e30243b835 (patch) | |
| tree | b780cf7cfa6b12195ea21fe68ed1f948bcc2299e /sys/fs | |
| parent | 8c71ce8a4e11a0d674763ccbe129b4780ed4eed8 (diff) | |
Notes
Diffstat (limited to 'sys/fs')
| -rw-r--r-- | sys/fs/msdosfs/msdosfs_denode.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/sys/fs/msdosfs/msdosfs_denode.c b/sys/fs/msdosfs/msdosfs_denode.c index 02b188f4c396a..89d38fe4dcbcd 100644 --- a/sys/fs/msdosfs/msdosfs_denode.c +++ b/sys/fs/msdosfs/msdosfs_denode.c @@ -356,6 +356,17 @@ deget(pmp, dirclust, diroffset, depp) */ u_long size; + /* + * XXX Sometimes, these arrives that . entry have cluster + * number 0, when it shouldn't. Use real cluster number + * instead of what is written in directory entry. + */ + if ((diroffset == 0) && (ldep->de_StartCluster != dirclust)) { + printf("deget(): . entry at clust %ld != %ld\n", + dirclust, ldep->de_StartCluster); + ldep->de_StartCluster = dirclust; + } + nvp->v_type = VDIR; if (ldep->de_StartCluster != MSDOSFSROOT) { error = pcbmap(ldep, 0xffff, 0, &size, 0); |
