[Top] [All Lists]

Re: [PATCH v6] ext4: Add support FALLOC_FL_COLLAPSE_RANGE for fallocate

To: "Theodore Ts'o" <tytso@xxxxxxx>
Subject: Re: [PATCH v6] ext4: Add support FALLOC_FL_COLLAPSE_RANGE for fallocate
From: Namjae Jeon <linkinjeon@xxxxxxxxx>
Date: Thu, 27 Feb 2014 13:03:53 +0900
Cc: Namjae Jeon <linkinjeon@xxxxxxxxx>, viro@xxxxxxxxxxxxxxxxxx, david@xxxxxxxxxxxxx, bpm@xxxxxxx, adilger.kernel@xxxxxxxxx, jack@xxxxxxx, mtk.manpages@xxxxxxxxx, lczerner@xxxxxxxxxx, linux-fsdevel@xxxxxxxxxxxxxxx, xfs@xxxxxxxxxxx, linux-ext4@xxxxxxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, Namjae Jeon <namjae.jeon@xxxxxxxxxxx>, Ashish Sangwan <a.sangwan@xxxxxxxxxxx>
Delivered-to: xfs@xxxxxxxxxxx
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=7lvNUktWqYcAsB/7deFiY4yhR9ZCA1wP0zq3oZXJFpM=; b=WghLbHBZiCGAlv6ShpuZ/KY8xMZ7UzydDwIn6Yi3zwTKT9ZWmNUNqjyuaaOv/UHpGh cmlaP6u2VQOnBEszN3fINiD/wWa/HP1waBGL1NDHR84SDYkaUCYuUPIo9Gy8KOLaZYso C2A/ElPTrB3P8PuIYeYzJfgHQJ0mqtht2DwMP0Kwwmnrfz0xNz+DxZ5ooycmaXX2+xkH n3ak2i5fOySt3eS82Cab9hDKAoYLmYRoNu/hRNWde5l2XbG9Dq1c/hWu4oen7x5prie0 LxeuyCUCPmY6k37svEnE7etroY3vgJo5GI7ggu9XTj/aqZTK6Hwn/uWxxGRzvXhMvZ5B CJnA==
In-reply-to: <20140226164827.GB11452@xxxxxxxxx>
References: <1392908861-3563-1-git-send-email-linkinjeon@xxxxxxxxx> <20140222170930.GE26637@xxxxxxxxx> <CAKYAXd9vTbjTnJOQ1Y=pi4QJSYj41fWsQgRD3Fkufskez2W-YA@xxxxxxxxxxxxxx> <20140226164827.GB11452@xxxxxxxxx>
2014-02-27 1:48 GMT+09:00, Theodore Ts'o <tytso@xxxxxxx>:
> On Mon, Feb 24, 2014 at 10:22:10AM +0900, Namjae Jeon wrote:
>> >> + ret = ext4_es_remove_extent(inode, punch_start,
>> >> +                             EXT_MAX_BLOCKS - punch_start - 1);
>> >> + if (ret) {
>> >> +         up_write(&EXT4_I(inode)->i_data_sem);
>> >> +         goto out_stop;
>> >> + }
>> >
>> > Doing this at first is probably a bad idea; you should do this at the
>> > end, and then completely invalidate the es cache for that inode.  That
>> > way, the right thing happens if you get an error in the middle
>> > releasing the boxes and shifting the extents:
>> Okay, I see.
> Actually, thinking about this some more, we do want to do this first,
> since if we error out, we do need to make sure the extent cache is
> flushed.

>> If there is error in the middle of extent shifting, the hole will
>> present between the last shifted extent and the extent at which error
>> happen so this will be consistent state.
>> IMHO even if there is error in between the shift, filesystem will be
>> in consistent state.
>> Am I missing something?
> No, I was wrong about that; you're right.  The file will be in an
> inconsistent statement, which will probably be highly confusing for
> the application, but the file system will be fine.
> So I withdraw my complaints.  I'll do a bit more testing, but so far
> the patch looks fine to me.  Thanks for your reply and your work!
Thanks for your review! I will fix these include Hugh's review points.
>                                       - Ted

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