Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753906AbZI0Q03 (ORCPT ); Sun, 27 Sep 2009 12:26:29 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753777AbZI0Q02 (ORCPT ); Sun, 27 Sep 2009 12:26:28 -0400 Received: from mk-filter-2-a-1.mail.uk.tiscali.com ([212.74.100.53]:40485 "EHLO mk-filter-2-a-1.mail.uk.tiscali.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753720AbZI0Q02 (ORCPT ); Sun, 27 Sep 2009 12:26:28 -0400 X-Trace: 266589622/mk-filter-2.mail.uk.tiscali.com/B2C/$b2c-THROTTLED-DYNAMIC/b2c-CUSTOMER-DYNAMIC-IP/79.69.38.252/None/hugh.dickins@tiscali.co.uk X-SBRS: None X-RemoteIP: 79.69.38.252 X-IP-MAIL-FROM: hugh.dickins@tiscali.co.uk X-SMTP-AUTH: X-MUA: X-IP-BHB: Once X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AtUEADIvv0pPRSb8/2dsb2JhbACBUNEngjOBawU X-IronPort-AV: E=Sophos;i="4.44,461,1249254000"; d="scan'208";a="266589622" Date: Sun, 27 Sep 2009 17:26:25 +0100 (BST) From: Hugh Dickins X-X-Sender: hugh@sister.anvils To: Andi Kleen cc: Nick Piggin , Wu Fengguang , Andrew Morton , linux-mm@kvack.org, LKML Subject: Re: [RFC][PATCH] HWPOISON: remove the unsafe __set_page_locked() In-Reply-To: <20090926213204.GX30185@one.firstfloor.org> Message-ID: References: <20090926031537.GA10176@localhost> <20090926190645.GB14368@wotan.suse.de> <20090926213204.GX30185@one.firstfloor.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1136 Lines: 25 On Sat, 26 Sep 2009, Andi Kleen wrote: > > This is a bit tricky to do right now; you have a chicken and egg > > problem between locking the page and pinning the inode mapping. > > One possibly simple solution would be to just allocate the page > locked (GFP_LOCKED). When the allocator clears the flags it already > modifies the state, so it could as well set the lock bit too. No > atomics needed. And then clearing it later is also atomic free. That's a good idea. I don't particularly like adding a GFP_LOCKED just for this, and I don't particularly like having to remember to unlock the thing on the various(?) error paths between getting the page and adding it to cache. But it is a good idea, and if doing it that way would really close a race window which checking page->mapping (or whatever) cannot (I'm simply not sure about that), then it would seem the best way to go. Hugh -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/