Can some of the people who use msdosfs please test this patch for me ? Poul-Henning Index: fs/msdosfs/denode.h =================================================================== RCS file: /home/ncvs/src/sys/fs/msdosfs/denode.h,v retrieving revision 1.28 diff -u -r1.28 denode.h --- fs/msdosfs/denode.h 8 Sep 2004 13:03:19 -0000 1.28 +++ fs/msdosfs/denode.h 1 Dec 2004 07:48:25 -0000 _at__at_ -138,7 +138,6 _at__at_ struct denode *de_next; /* Hash chain forward */ struct denode **de_prev; /* Hash chain back */ struct vnode *de_vnode; /* addr of vnode we are part of */ - struct vnode *de_devvp; /* vnode of blk dev we live on */ u_long de_flag; /* flag bits */ struct cdev *de_dev; /* device where direntry lives */ u_long de_dirclust; /* cluster of the directory file containing this entry */ Index: fs/msdosfs/msdosfs_denode.c =================================================================== RCS file: /home/ncvs/src/sys/fs/msdosfs/msdosfs_denode.c,v retrieving revision 1.75 diff -u -r1.75 msdosfs_denode.c --- fs/msdosfs/msdosfs_denode.c 29 Oct 2004 10:40:14 -0000 1.75 +++ fs/msdosfs/msdosfs_denode.c 1 Dec 2004 07:48:25 -0000 _at__at_ -258,7 +258,6 _at__at_ nvp->v_data = ldep; ldep->de_vnode = nvp; ldep->de_flag = 0; - ldep->de_devvp = 0; ldep->de_dev = dev; ldep->de_dirclust = dirclust; ldep->de_diroffset = diroffset; _at__at_ -372,8 +371,6 _at__at_ } else nvp->v_type = VREG; ldep->de_modrev = init_va_filerev(); - ldep->de_devvp = pmp->pm_devvp; - VREF(ldep->de_devvp); *depp = ldep; return (0); } _at__at_ -646,10 +643,6 _at__at_ /* * Purge old data structures associated with the denode. */ - if (dep->de_devvp) { - vrele(dep->de_devvp); - dep->de_devvp = 0; - } #if 0 /* XXX */ dep->de_flag = 0; #endif Index: fs/msdosfs/msdosfs_vnops.c =================================================================== RCS file: /home/ncvs/src/sys/fs/msdosfs/msdosfs_vnops.c,v retrieving revision 1.152 diff -u -r1.152 msdosfs_vnops.c --- fs/msdosfs/msdosfs_vnops.c 15 Nov 2004 09:18:26 -0000 1.152 +++ fs/msdosfs/msdosfs_vnops.c 1 Dec 2004 07:48:25 -0000 _at__at_ -182,7 +182,6 _at__at_ ndirent.de_StartCluster = 0; ndirent.de_FileSize = 0; ndirent.de_dev = pdep->de_dev; - ndirent.de_devvp = pdep->de_devvp; ndirent.de_pmp = pdep->de_pmp; ndirent.de_flag = DE_ACCESS | DE_CREATE | DE_UPDATE; getnanotime(&ts); _at__at_ -1356,7 +1355,6 _at__at_ ndirent.de_StartCluster = newcluster; ndirent.de_FileSize = 0; ndirent.de_dev = pdep->de_dev; - ndirent.de_devvp = pdep->de_devvp; error = createde(&ndirent, pdep, &dep, cnp); if (error) goto bad; _at__at_ -1747,7 +1745,7 _at__at_ int error; if (ap->a_bop != NULL) - *ap->a_bop = &dep->de_devvp->v_bufobj; + *ap->a_bop = &dep->de_pmp->pm_devvp->v_bufobj; if (ap->a_bnp == NULL) return (0); if (ap->a_runp) { -- Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 phk_at_FreeBSD.ORG | TCP/IP since RFC 956 FreeBSD committer | BSD since 4.3-tahoe Never attribute to malice what can adequately be explained by incompetence.Received on Wed Dec 01 2004 - 06:50:07 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:23 UTC