kern/106703: [PATCH] vn_stat() fails with files > 2Gb on msdosfs (non 386)

Tom Rhodes trhodes at FreeBSD.org
Thu Dec 14 17:00:32 PST 2006


The following reply was made to PR kern/106703; it has been noted by GNATS.

From: Tom Rhodes <trhodes at FreeBSD.org>
To: Remko Lodder <remko at elvandar.org>
Cc: loox at e-shell.net, freebsd-gnats-submit at FreeBSD.org
Subject: Re: kern/106703: [PATCH] vn_stat() fails with files > 2Gb on
 msdosfs (non 386)
Date: Thu, 14 Dec 2006 19:48:48 -0500

 On Thu, 14 Dec 2006 08:06:53 +0100
 Remko Lodder <remko at elvandar.org> wrote:
 
 > On Thu, Dec 14, 2006 at 06:30:15AM +0000, Axel Gonzalez wrote:
 > > 
 > > >Description:
 > > When you copy/create a file > 2Gb on a msdosfs, it is created correctly, but vn_stat() fails on the file.
 > > 
 > > Since the function is used on several userland programs (ls, rm), it seems like the file is not on the FS.
 > > 
 > 
 > Hello,
 > 
 > 	first of all thanks for the report to help make FreeBSD better!
 > 
 > 	One thing that crosses my mind is that (in my believing) the maximum
 > 	size of a file under msdos(fs) was 2gb, which could explain this
 > 	"problem" you are seeing. If that is still accurate, I don't think
 > 	we should patch the file you mention, but refuse to accept files
 > 	larger then 2gb since they will then not be visible at all on the
 > 	disk when msdos itself is being used (or some other OS that reads
 > 	out the msdosfs).
 > 
 > 	I copied in Tom Rhodes for more clarification (he maintains msdosfs).
 > 
 > 	Again thanks for the report and taking the time to mention this!
 > 
 > 	Cheers,
 > 	remko
 
 Hmm, that is an interesting problem, and I'm digging the fix.
 FAT32 should handle file sizes up to (2^32)-1 bytes (one byte
 fewer than four gigabytes.  So we should properly handle this
 for all FAT32 file systems.
 
 Heh, I don't want maintainership of MSDOSFS, can I give it
 back or sell it to someone?  It's rarely used, I've only touched
 it a few times.  :P
 
 -- 
 Tom Rhodes


More information about the freebsd-bugs mailing list