[Top] [All Lists]

[PATCH 0/3] fs: Introduce FALLOC_FL_INSERT_RANGE for fallocate

To: viro@xxxxxxxxxxxxxxxxxx, david@xxxxxxxxxxxxx, hch@xxxxxxxxxxxxx, tytso@xxxxxxx, adilger.kernel@xxxxxxxxx, jack@xxxxxxx, lczerner@xxxxxxxxxx
Subject: [PATCH 0/3] fs: Introduce FALLOC_FL_INSERT_RANGE for fallocate
From: Namjae Jeon <linkinjeon@xxxxxxxxx>
Date: Mon, 31 Mar 2014 23:53:31 +0900
Cc: linux-fsdevel@xxxxxxxxxxxxxxx, xfs@xxxxxxxxxxx, linux-ext4@xxxxxxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, Namjae Jeon <linkinjeon@xxxxxxxxx>, Namjae Jeon <namjae.jeon@xxxxxxxxxxx>
Delivered-to: xfs@xxxxxxxxxxx
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=dHX7e7k6uGzxNPet4eCWb6UNrA0uKns2EXxwrmZWBhw=; b=n/fY6P2csBz6OSxM5nU4Foc7y+KmJuYRbbTOfLr3KpFXBtV7Vcd7KhnoNeLwL+JqBi xlKPbIoaJ9L5uHaxZHV9hLrih8MfvU32GRT6/6BhJ4WFz/x9oCIyaCU1Jq4xDnBUTNLI lVFcoluFs4iOgy1p8/dd5pV8lJbQNVB1Y5bvn0N/B+vCYbiMUgx/vkn+hq5uGHlbRTUK o9vyuzkd71vErsmNpSrw5NjS3FWEBbtZcOF7pu2VndE7ZDXtF2Y3eATsbjXCPKUGT1fT SEipSMiG9O/SLS54lX+CEV01QndvSeswv0HtzgbD4c2aRAycUFnRVUJo7QwOwXAdnGFx x8jQ==
From: Namjae Jeon <namjae.jeon@xxxxxxxxxxx>

FALLOC_FL_INSERT_RANGE was mentioned as the opposite command of collapse
range from discussion between Hugh Dickins and Dave Chinner.

In continuation of the work of making the process of non linear editing of
media files faster, we introduce here the new flag FALLOC_FL_INSERT_RANGE
for fallocate.

This flag will work opposite to the newly added FALLOC_FL_COLLAPSE_RANGE flag.
As such, specifying FALLOC_FL_INSERT_RANGE flag will insert zeroed-out space
in between the file within the range specified by offset and len. User can
write new data in this space. e.g. ads.
Like collapse range, currently we have the limitation that offset and len
should be block size aligned for both XFS and Ext4.

The semantics of the flag are :
1) It allocates new zeroed out on disk space of len bytes starting
   at offset byte without overwriting any existing data. All the data blocks
   from offset to EOF are shifted towards right to make space for inserting
   new blocks
2) It should be used exclusively. No other fallocate flag in combination.
3) Offset and length supplied to fallocate should be fs block size aligned
   in case of xfs and ext4.
4) Insert range does not work for the case when offset is overlapping/beyond
   i_size. If the user wants to allocate space at the end of file they are
   advised to use either ftruncate(2) or fallocate(2) with mode 0.
5) It increses the size of file by len bytes.

Namjae Jeon (3):
 fs: Add FALLOC_FL_INSERT_RANGE flags for fallocate
 xfs: Add support FALLOC_FL_INSERT_RANGE for fallocate
 ext4: Add support FALLOC_FL_INSERT_RANGE for fallocate
 TODO : xfsprog: xfsio: Add support FALLOC_FL_INSERT_RANGE for fallocate
 TODO : xfstests: Add insert range testcase


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