Re: Wrong free clusters count on FAT32

From: OGAWA Hirofumi
Date: Sun Apr 22 2007 - 07:55:52 EST


DervishD <lkml@xxxxxxxxxxxx> writes:

> The problem is that if a program writes a file onto the filesystem
> without using statfs first to check for free space, the free_clusters
> entry won't have the real value and the driver may report "disk full" (I
> haven't read the code for the vfat driver, sorry, so I'm not sure about
> this) when really there are plenty of clusters to write the new file.

No need to worry about it. If we ignored the ->free_clusters in
FSINFO, the fat drivers counts the current free clusters by scaning
FAT entries if needed.

> Probably it's stupid to update the free clusters count at mount time
> (sorry if so...) but it looks like a good idea to me. And of course, I
> don't mean to update the value _on disk_, but the kernel's idea of free
> clusters (so even FAT filesystems mounted R/O will report correct
> values).

It would add the limitation to following simple usage,

# mount -t vfat /dev/sda1 /mnt
# cp -a * /mnt
# umount

if /dev/sda1 was the large and slow device, "mount" will need several
minutes to counts free clusters. I think the user will be hard to
accept the several minutes at "mount".

Thanks.
--
OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/