Re: [PATCH v4 15/20] ext4: use ext4_zero_partial_blocks in punch_hole

Lukáš Czerner
2013-06-20T09:12:08Z

[-- Attachment #1: Type: TEXT/PLAIN, Size: 1542 bytes --]

On Wed, 19 Jun 2013, Theodore Ts'o wrote:

> Date: Wed, 19 Jun 2013 19:42:43 -0400
> From: Theodore Ts'o <tytso@mit.edu>
> To: Lukáš Czerner <lczerner@redhat.com>
> Cc: linux-ext4@vger.kernel.org, Ashish Sangwan <ashishsangwan2@gmail.com>
> Subject: Re: [PATCH v4 15/20] ext4: use ext4_zero_partial_blocks in punch_hole
>
> On Wed, Jun 19, 2013 at 06:37:53PM +0200, Lukáš Czerner wrote:
> >
> > I think I've got this. The problem actually is in
> > ext4_zero_partial_blocks() where we would attempt to zero out page
> > which has been previously released by truncate_pagecache_range().
> > This might happen when we're punching out just a single page because
> > in ext4_zero_partial_blocks() we do not check whether we're dealing
> > with the whole, or partial page. At the point we're going to zero it
> > out it might have been already released and reused by someone else.
> >
> > This patch should fix this issue. And indeed with this applied I do
> > not see the problem anymore but I am still testing.
>
> Thanks for finding this! I'm still doing testing of your trial patch
> myself, but initial results seem to indicate that this also solves the
> failures 269 and 270 which was apparently uncovered by Ashish's patch
> "ext4: optimize extent selection for block removal in case of hole
> punch".
>
> - Ted

Hi Ted,

from my testing I still see problems with test 269, however I've
seen this even without the patch #15 so I am not sure that it's
caused by this.

I'll send a proper patch soon.

Thanks!
-Lukas