Re: BUG Report in iso9660_fs in 1.3.90 (f_blocks is wrong)

Andries.Brouwer@cwi.nl
Thu, 18 Apr 1996 23:51:12 +0200


Tigran Aivazian:

: I noticed a bug in (f)statfs(2) when called on iso9660 filesystem.
: Look what it shows:
...
: As you see, it says that /cdrom has 342694 blocks which is twice as small
: as it used to be.

Yes, someone made some changes but didnt update all places affected.
My patch below doesn't do that either, but it will solve your problem.
[Your line numbers may differ; I have other changes there as well.]

Andries

--- ../linux-1.3.90/linux/fs/isofs/inode.c Thu Apr 18 19:34:42 1996
+++ linux/fs/isofs/inode.c Thu Apr 18 23:16:27 1996
@@ -431,7 +430,8 @@

tmp.f_type = ISOFS_SUPER_MAGIC;
tmp.f_bsize = sb->s_blocksize;
- tmp.f_blocks = sb->u.isofs_sb.s_nzones;
+ tmp.f_blocks = (sb->u.isofs_sb.s_nzones
+ << (sb->u.isofs_sb.s_log_zone_size - sb->s_blocksize_bits));
tmp.f_bfree = 0;
tmp.f_bavail = 0;
tmp.f_files = sb->u.isofs_sb.s_ninodes;