xfs
[Top] [All Lists]

Re: [PATCH 3/3 v2] fs: move falloc collapse range check into the filesys

To: Lukas Czerner <lczerner@xxxxxxxxxx>
Subject: Re: [PATCH 3/3 v2] fs: move falloc collapse range check into the filesystem methods
From: Theodore Ts'o <tytso@xxxxxxx>
Date: Tue, 15 Apr 2014 22:55:21 -0400
Cc: linux-fsdevel@xxxxxxxxxxxxxxx, linux-ext4@xxxxxxxxxxxxxxx, xfs@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
Dkim-signature: v=1; a=rsa-sha256; c=simple/simple; d=thunk.org; s=ef5046eb; t=1397616921; bh=4a7PLv4oW2ZosX1k4DJwQiD9hoMRBwvx3yiZDsIVrkg=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=GFPPcIuQX8r/gtOuTGwdvezJN/+eUIsxokXfeGsm25uRbWaJ1R8h4gVxR9CrSggiK EsjvJlmMeRLqppJwPx3GV4Is5e71emQSiIh+PALFCZ0NTDniiR2p9/2hAOcsNtsGwQ M90QC2uUOhZp+JGyIEqBOrVsoUoP3YkyvsgvBuYA=
In-reply-to: <1397580076-19826-3-git-send-email-lczerner@xxxxxxxxxx>
References: <1397580076-19826-1-git-send-email-lczerner@xxxxxxxxxx> <1397580076-19826-3-git-send-email-lczerner@xxxxxxxxxx>
User-agent: Mutt/1.5.23 (2014-03-12)
On Tue, Apr 15, 2014 at 06:41:16PM +0200, Lukas Czerner wrote:
> Currently in do_fallocate in collapse range case we're checking whether
> offset + len is not bigger than i_size. However there is nothing which
> would prevent i_size from changing so the check is pointless. It should
> be done in the file system itself and the file system needs to make sure
> that i_size is not going to change. The i_size check for the other
> fallocate modes are also done in the filesystems.
> 
> As it is now we can easily crash kernel by having two processes doing
> truncate and fallocate collapse range at the same time. This can be
> reproduced on ext4 and it is theoretically possible on xfs even though I
> was not able to trigger it with this simple test.
> 
> This commit removes the check from do_fallocate and adds it to the file
> system.
> 
> Signed-off-by: Lukas Czerner <lczerner@xxxxxxxxxx>
> Acked-by: Dave Chinner <david@xxxxxxxxxxxxx>
> Reviewed-by: Christoph Hellwig <hch@xxxxxx>

Thanks, updated.

                                                - Ted

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