xfs
[Top] [All Lists]

how to understand allocsp

To: linux-xfs@xxxxxxxxxxx
Subject: how to understand allocsp
From: Ming Zhang <mingz@xxxxxxxxxxx>
Date: Thu, 24 Aug 2006 16:11:50 -0400
Reply-to: mingz@xxxxxxxxxxx
Sender: xfs-bounce@xxxxxxxxxxx
Hi All

Play with xfs_io and feel confused about this allocsp.

Starting with a empty file.

xfs_io> bmap
/t/x: no extents

I assumed this will allocate space from 0 with 1048576 bytes. but seems
this is wrong.

xfs_io> allocsp 0 1048576
xfs_io> bmap
/t/x: no extents


Do this from a non-zero start, found file filled with 0.
xfs_io> allocsp 1048576 0
xfs_io> bmap
/t/x:
        0: [0..2047]: 2147745792..2147747839


XFS_IOC_ALLOCSP64

Alter storage space associated with a section of the ordinary file
specified. The section
~~~~no idea what this "alter" mean here.

 is specified by a variable of type xfs_flock64_t, pointed to by the
final argument. The data type xfs_flock64_t contains the following
members: l_whence is 0, 1, or 2 to indicate that the relative offset
l_start will be measured from the start of the file, the current
position, or the end of the file, respectively. l_start is the offset
from the position specified in l_whence. l_len is the size of the
section. An l_len value of zero frees up to the end of the file; in this
case, the end of file (i.e., file size) is set to the beginning of the
section freed. Any data previously written into this section is no
longer accessible. If the section specified is beyond the current end of
file, the file is grown and filled with zeroes. The l_len field is
currently ignored, and should be set to zero.

this "currently ignored" is ONLY when "section is beyond the current end
of file" or for any l_start?


Thanks!

Ming



<Prev in Thread] Current Thread [Next in Thread>