Index: msdosfs/msdosfs_denode.c =================================================================== RCS file: /cvs/src/sys/msdosfs/msdosfs_denode.c,v retrieving revision 1.27 diff -u -r1.27 msdosfs_denode.c --- msdosfs/msdosfs_denode.c 24 Jun 2004 19:35:25 -0000 1.27 +++ msdosfs/msdosfs_denode.c 8 Apr 2005 15:56:14 -0000 @@ -448,28 +448,21 @@ if (isadir) { bn = cntobn(pmp, eofentry); error = bread(pmp->pm_devvp, bn, pmp->pm_bpcluster, - NOCRED, &bp); - } else { - bn = de_blk(pmp, length); - error = bread(DETOV(dep), bn, pmp->pm_bpcluster, - NOCRED, &bp); - } - if (error) { - brelse(bp); + NOCRED, &bp); + if (error) { + brelse(bp); #ifdef MSDOSFS_DEBUG - printf("detrunc(): bread fails %d\n", error); + printf("detrunc(): bread fails %d\n", error); #endif - return (error); + return (error); + } + bzero(bp->b_data + boff, pmp->pm_bpcluster - boff); + if (flags & IO_SYNC) + bwrite(bp); + else + bdwrite(bp); } uvm_vnp_uncache(DETOV(dep)); - /* - * is this the right place for it? - */ - bzero(bp->b_data + boff, pmp->pm_bpcluster - boff); - if (flags & IO_SYNC) - bwrite(bp); - else - bdwrite(bp); } /*