Date: Sat, 02 Jun 2007 21:47:02 +1000 From: "Zver Z." <klim_serega@mail.ru> To: freebsd-fs@freebsd.org Subject: PATCH FOR VFS FREEBSD 6.2 FROM RUSSIA(CHITA) Message-ID: <1180784822.1239.23.camel@XATA.RU>
next in thread | raw e-mail | index | archive | help
--=-y/jBuOob0ZpNZQ9EYVGg Content-Type: text/plain Content-Transfer-Encoding: 7bit test patch FreeBSD 6.2, (pycckie ya ploho znay engl, esli shto pishite na mail) _________________________________________________________________________________ vfs_subr.patch -- It'is current problem |:-) (really problem is up in function bufsync, this function not return error go back g_up) msdosfs_vnops.patch -- panic: page fault if on flash msdosfs msdossf_vfsop.patch -- free resources ffs_vfsops.patch -- free resources vfs_mount.pach -- it for bad realisation fsync msdosfs All patch test. But i can paint stable patch. sorry my english))) -- Zver Z. <klim_serega@mail.ru> --=-y/jBuOob0ZpNZQ9EYVGg Content-Disposition: attachment; filename=ffs_vfsops.patch Content-Type: text/x-patch; name=ffs_vfsops.patch; charset=koi8-r Content-Transfer-Encoding: 7bit --- /sys/ufs/ffs/ffs_vfsops.c Mon May 21 22:06:40 2007 +++ ffs_vfsops.c Mon May 21 22:07:35 2007 @@ -979,10 +979,12 @@ if (fs->fs_ronly == 0) { fs->fs_clean = fs->fs_flags & (FS_UNCLEAN|FS_NEEDSFSCK) ? 0 : 1; error = ffs_sbupdate(ump, MNT_WAIT, 0); - if (error) { + if (error && (error & ENXIO) == 0) { fs->fs_clean = 0; return (error); } + if (error & ENXIO) + error = 0; } DROP_GIANT(); g_topology_lock(); --=-y/jBuOob0ZpNZQ9EYVGg Content-Disposition: attachment; filename=msdosfs_vfsops.patch Content-Type: text/x-patch; name=msdosfs_vfsops.patch; charset=koi8-r Content-Transfer-Encoding: 7bit --- /sys/fs/msdosfs/msdosfs_vfsops.c Wed Dec 20 12:05:30 2006 +++ msdosfs_vfsops.c Wed May 16 21:24:03 2007 @@ -766,8 +766,10 @@ /* If the volume was mounted read/write, mark it clean now. */ if ((pmp->pm_flags & MSDOSFSMNT_RONLY) == 0) { error = markvoldirty(pmp, 0); - if (error && (flags & FORCECLOSE) == 0) + if (error && (flags & FORCECLOSE) == 0 && (error & ENXIO) == 0) return (error); + if (error & ENXIO) + error = 0; } #ifdef MSDOSFS_DEBUG { --=-y/jBuOob0ZpNZQ9EYVGg Content-Disposition: attachment; filename=msdosfs_vnops.patch Content-Type: text/x-patch; name=msdosfs_vnops.patch; charset=koi8-r Content-Transfer-Encoding: 7bit --- /sys/fs/msdosfs/msdosfs_vnops.c Mon Mar 13 12:05:13 2006 +++ msdosfs_vnops.c Thu May 17 11:44:23 2007 @@ -1834,7 +1834,9 @@ printf("\tstartcluster %lu, dircluster %lu, diroffset %lu, ", dep->de_StartCluster, dep->de_dirclust, dep->de_diroffset); - printf("on dev %s\n", devtoname(dep->de_dev)); + if (dep->de_dev != NULL) { + printf("on dev %s\n", devtoname(dep->de_dev)); + } return (0); } --=-y/jBuOob0ZpNZQ9EYVGg Content-Disposition: attachment; filename=vfs_mount.patch Content-Type: text/x-patch; name=vfs_mount.patch; charset=koi8-r Content-Transfer-Encoding: 7bit --- /sys/kern/vfs_mount.c Wed Oct 25 01:02:39 2006 +++ vfs_mount.c Thu May 17 11:48:49 2007 @@ -1194,6 +1194,10 @@ (flags & MNT_FORCE)) { error = VFS_UNMOUNT(mp, flags, td); } + if (error & ENXIO) { + printf("dounmount: error=%d\n", error); + error = VFS_UNMOUNT(mp, 0, td); + } vn_finished_write(mp); if (error) { /* Undo cdir/rdir and rootvnode changes made above. */ --=-y/jBuOob0ZpNZQ9EYVGg Content-Disposition: attachment; filename=vfs_subr.patch Content-Type: text/x-patch; name=vfs_subr.patch; charset=koi8-r Content-Transfer-Encoding: 7bit --- /sys/kern/vfs_subr.c Mon Dec 4 17:47:53 2006 +++ vfs_subr.c Thu May 17 20:31:58 2007 @@ -1029,8 +1029,10 @@ * enabled under INVARIANTS */ BO_LOCK(bo); - if (bo->bo_numoutput > 0 || bo->bo_dirty.bv_cnt > 0) - panic("vinvalbuf: dirty bufs"); + if (bo->bo_numoutput > 0 || bo->bo_dirty.bv_cnt > 0) { + printf("bufobj_invalbuf: warning panic not run, error=%d\n", error); + flags = 0; + } } } /* --=-y/jBuOob0ZpNZQ9EYVGg--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1180784822.1239.23.camel>