-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Fri, Aug 17, 2007 at 07:21:44PM +0530, Adil Mujeeb wrote:
> This is regarding the stat system call. Before asking the question, let me
> tell you the environment setup of my test machine.
>
> I have kernel version 2.6.19 installed and my home partition is ext3 :
>
> [EMAIL PROTECTED]:~> uname -a
>
> Linux Garfield 2.6.19.2-smp #3 SMP Mon Mar 12 17:25:39 IST 2007 i686 i686
> i386 GNU/Linux
>
> [EMAIL PROTECTED]:~> pwd
>
> /home/adil
>
> [EMAIL PROTECTED]:~> mount | grep home
>
> /dev/sda5 on /home type ext3 (rw,acl,user_xattr)
>
> If I want to see the file system status through stat command, it shows the
> following oputput:
>
> [EMAIL PROTECTED]:~> stat -f .
> File: "."
> ID: 0 Namelen: 255 Type: ext2/ext3
> Block size: 4096 Fundamental block size: 4096
> Blocks: Total: 11266702 Free: 6086151 Available: 5513836
> Inodes: Total: 5723200 Free: 5473928
>
> My first question: What is difference between "Block size" and "Fundamental
> block size"? I have not found these two values different?
No idea, stat(2) and statvfs(2) don't define such a thing. Look it up
in the stat(1) source.
> Suppose I have a directory /home/test
>
> Garfield:/home # stat -f test/
> File: "test/"
> ID: 0 Namelen: 255 Type: ext2/ext3
> Block size: 4096 Fundamental block size: 4096
> Blocks: Total: 11266702 Free: 6086151 Available: 5513836
> Inodes: Total: 5723200 Free: 5473928
>
> I mount it as nfs partition locally:
>
> Garfield:/home # mount -t nfs localhost:/home/test /mnt/nfs
> Garfield:/home # mount | grep nfs
> nfsd on /proc/fs/nfsd type nfsd (rw)
> localhost:/home/test on /mnt/nfs type nfs (rw,addr=127.0.0.1)
>
> Issued stat ?f command:
>
> Garfield:/home # stat -f /mnt/test/
> File: "/mnt/test/"
> ID: 0 Namelen: 255 Type: reiserfs
^^^^^^^^
Something went wrong, I think you're looking at a different filesystem
here.
> Block size: 4096 Fundamental block size: 4096
> Blocks: Total: 2612479 Free: 817984 Available: 817984
> Inodes: Total: 0 Free: 0
>
> Garfield:/home #
>
> My assumption is that the calculation of Total/Free/Available blocks are
> based on 4KB (default value) irrespective of the Block size and Fundamental
> block size.
No, I don't see how you come to that conclusion. You've so far only
looked at filesystems with 4k blocksize. I suggest to create an ext3 fs
with a 1k blocksize and see what it says.
> Please correct me if I am wrong?
>
> I have created 1 MB file :
>
> [EMAIL PROTECTED]:~> la -al 1MB
> -rw-r--r-- 1 adil users 1048576 2007-08-17 19:02 1MB
>
> [EMAIL PROTECTED]:~> stat 1MB
> File: `1MB'
> Size: 1048576 Blocks: 2056 IO Block: 4096 regular file
> Device: 805h/2053d Inode: 691177 Links: 1
> Access: (0644/-rw-r--r--) Uid: ( 1002/ adil) Gid: ( 100/ users)
> Access: 2007-08-17 19:02:00.000000000 +0530
> Modify: 2007-08-17 19:02:00.000000000 +0530
> Change: 2007-08-17 19:02:00.000000000 +0530
>
> Increase the file size with 6 bytes
>
> [EMAIL PROTECTED]:~> la -al 1MB
> -rw-r--r-- 1 adil users 1048582 2007-08-17 19:03 1MB
>
> [EMAIL PROTECTED]:~> stat 1MB
> File: `1MB'
> Size: 1048582 Blocks: 2064 IO Block: 4096 regular file
> Device: 805h/2053d Inode: 691177 Links: 1
> Access: (0644/-rw-r--r--) Uid: ( 1002/ adil) Gid: ( 100/ users)
> Access: 2007-08-17 19:03:01.000000000 +0530
> Modify: 2007-08-17 19:03:11.000000000 +0530
> Change: 2007-08-17 19:03:11.000000000 +0530
>
> Now the number of blocks increase with 8 i.e. 512*8=4096. Does it mean,
> minimum number of block should be allocated will be 8 irrespective of IO
> Block size and system architecture?
The "blocks" count also accounts for the file metadata. Ext[23] use
block lists and need to store things like the indirect, double
indirect, and triple indirect blocks.
> Also is this 4096 figure related to the system Page size or anything else?
Right now Linux can only work with block sizes <= pagesize which
happens to be 4k on most architectures. Work is underway to allow
larger blocksizes.
Erik
- --
They're all fools. Don't worry. Darwin may be slow, but he'll
eventually get them. -- Matthew Lammers in alt.sysadmin.recovery
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
iD8DBQFGxa/s/PlVHJtIto0RAqvQAJwJRzESWKs6H1yLCfpwdj2Q4kLBlwCfRc/9
gOJDfpAYLbsyPlM0QVf8CuM=
=/cPX
-----END PGP SIGNATURE-----
--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [EMAIL PROTECTED]
Please read the FAQ at http://kernelnewbies.org/FAQ