Re: [PATCH 0/2] revert changes to zcache_do_preload()

From: Seth Jennings
Date: Thu Aug 23 2012 - 18:10:22 EST


On 08/23/2012 03:56 PM, Minchan Kim wrote:
> Hi Seth,
>
> On Thu, Aug 23, 2012 at 10:33:09AM -0500, Seth Jennings wrote:
>> This patchset fixes a regression in 3.6 by reverting two dependent
>> commits that made changes to zcache_do_preload().
>>
>> The commits undermine an assumption made by tmem_put() in
>> the cleancache path that preemption is disabled. This change
>> introduces a race condition that can result in the wrong page
>> being returned by tmem_get(), causing assorted errors (segfaults,
>> apparent file corruption, etc) in userspace.
>>
>> The corruption was discussed in this thread:
>> https://lkml.org/lkml/2012/8/17/494
>
> I think changelog isn't enough to explain what's the race.
> Could you write it down in detail?

I didn't come upon this solution via code inspection, but
rather through discovering that the issue didn't exist in
v3.5 and just looking at the changes since then.

> And you should Cc'ed Xiao who is author of reverted patch.

Thanks for adding Xiao. I meant to do this. For some reason
I thought that you submitted that patchset :-/
My bad.

Seth

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/