[lkml]   [2007]   [Jun]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH 4/7][TAKE5] support new modes in fallocate
    On Mon, Jun 25, 2007 at 03:52:39PM -0600, Andreas Dilger wrote:
    > On Jun 25, 2007 19:15 +0530, Amit K. Arora wrote:
    > > +#define FA_FL_DEALLOC 0x01 /* default is allocate */
    > > +#define FA_FL_KEEP_SIZE 0x02 /* default is extend/shrink size */
    > > +#define FA_FL_DEL_DATA 0x04 /* default is keep written data on DEALLOC */
    > In XFS one of the (many) ALLOC modes is to zero existing data on allocate.
    > For ext4 all this would mean is calling ext4_ext_mark_uninitialized() on
    > each extent. For some workloads this would be much faster than truncate
    > and reallocate of all the blocks in a file.

    In ext4, we already mark each extent having preallocated blocks as
    uninitialized. This is done as part of following code (which is part of
    patch 5/7) in ext4_ext_get_blocks() :

    @@ -2122,6 +2160,8 @@ int ext4_ext_get_blocks(handle_t *handle
    /* try to insert new extent into found leaf and return */
    ext4_ext_store_pblock(&newex, newblock);
    newex.ee_len = cpu_to_le16(allocated);
    + if (create == EXT4_CREATE_UNINITIALIZED_EXT) /* Mark uninitialized */
    + ext4_ext_mark_uninitialized(&newex);
    err = ext4_ext_insert_extent(handle, inode, path, &newex);
    if (err) {
    /* free data blocks we just allocated */

    > In that light, please change the comment to /* default is keep existing data */
    > so that it doesn't imply this is only for DEALLOC.

    Ok. Will update the comment.

    Amit Arora
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2007-06-26 12:49    [W:0.032 / U:12.696 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site