The allocator itself has notions of how to do this; allocations happen
with these flags:
typedef enum xfs_alloctype
XFS_ALLOCTYPE_ANY_AG, /* allocate anywhere, use rotor */
XFS_ALLOCTYPE_FIRST_AG, /* ... start at ag 0 */
XFS_ALLOCTYPE_START_AG, /* anywhere, start in this a.g. */
XFS_ALLOCTYPE_THIS_AG, /* anywhere in this a.g. */
XFS_ALLOCTYPE_START_BNO, /* near this block else anywhere */
XFS_ALLOCTYPE_NEAR_BNO, /* in this a.g. and near this block */
XFS_ALLOCTYPE_THIS_BNO /* at exactly this block */
However, there is not any sort of ioctl to pick and choose an allocation
method for a file... might be an interesting project, but it's not on
the radar here.
There are allocate space / reserve space ioctls, if you're ambitious,
you could possibly write new versions that take in more information
about how/where to allocate the space. Of course, you also may not get
what you ask for...
On Fri, 2002-08-16 at 14:22, Jean Francois Martinez wrote:
> I see many cases where for performance reasons I would like being able
> to tell XFS that two files should be physically close (affine) so disk
> space allcation should treat them as a whole. It could be something
> like that:
> -tell the filesystem that the files I will create are affine
> -create them
> -revoke affinity.
> Does this exist?
> -Any plans to implement it or know of a filesystem where this exists?
Eric Sandeen XFS for Linux http://oss.sgi.com/projects/xfs
sandeen@xxxxxxx SGI, Inc. 651-683-3102