Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 22 Jul 1997 16:40:39 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        cdillon@tri-lakes.net, haplo@ibm.net
Cc:        freebsd-stable@FreeBSD.ORG
Subject:   Re: mount_msdos -- is it safe yet?
Message-ID:  <199707220640.QAA14661@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>I apparently escaped the problem without knowing it by mounting drives
>no larger than 528MB (i always split my DOS drives up to make up for the
>FAT kludge of wasting cluster space).  I ususally have about 5 DOS
>partitions mounted, all 528 MB except for the last one which is even
>smaller.

I think you mean 512MB, but the problem was actually for (msdosfs) cluster
sizes larger than the old value of MAXBSIZE (16K).  Such cluster sizes
normally occur for file systems larger than 512MB, but they can occur
for any size of file system, e.g., when a file system that was initially
larger than 512MB is shrunk using FIPS to any size.  Shrinking sometimes
causes the warning "root directory is not a multiple of the cluster size
in length".  This is not a problem, but it is sometimes confused with the
real one.

getblk() used to accept requests for blocks larger than the maximum
supported and allocate only MAXBSIZE bytes for them.  This caused
neighboring blocks (perhaps belonging to other file systems) in the buffer
cache to be trashed when the allocated space was overrun.  Now getblk()
panics instead, and MAXBSIZE is 64K, so all possible msdosfs cluster sizes
work.  msdsofs is still too broken to reject cluster sizes >= MAXBSIZE
like ufs does.  getblk() is still broken in 2.1.

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199707220640.QAA14661>