cvs commit: src/sys/fs/msdosfs msdosfs_denode.c msdosfs_lookup.c
msdosfs_vfsops.c msdosfs_vnops.c
Bruce Evans
bde at FreeBSD.org
Fri Oct 19 05:23:25 PDT 2007
bde 2007-10-19 12:23:25 UTC
FreeBSD src repository
Modified files:
sys/fs/msdosfs msdosfs_denode.c msdosfs_lookup.c
msdosfs_vfsops.c msdosfs_vnops.c
Log:
Implement the async (really, delayed-write) mount option for msdosfs.
This is much simpler than for ffs since there are many fewer places
where we need to choose between a delayed write and a sync write --
just 5 in msdosfs and more than 30 in ffs.
This is more complete and correct than in ffs. Several places in ffs
are are still missing the choice. ffs_update() has a layering violation
that breaks callers which want to force a sync update (mainly fsync(2)
and O_SYNC write(2)).
However, fsync(2) and O_SYNC write(2) are still more broken than in
ffs, since they are broken for default (non-sync non-async) mounts
too. Both fail to sync the FAT in all cases, and both fail to sync
the directory entry in some cases after losing a race. Async everything
is probably safer than the half-baked sync of metadata given by default
mounts.
Revision Changes Path
1.98 +2 -2 src/sys/fs/msdosfs/msdosfs_denode.c
1.52 +9 -3 src/sys/fs/msdosfs/msdosfs_lookup.c
1.178 +1 -1 src/sys/fs/msdosfs/msdosfs_vfsops.c
1.181 +6 -4 src/sys/fs/msdosfs/msdosfs_vnops.c
More information about the cvs-all
mailing list