From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752649AbaLTGNp (ORCPT ); Sat, 20 Dec 2014 01:13:45 -0500 Received: from zeniv.linux.org.uk ([195.92.253.2]:60792 "EHLO ZenIV.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750780AbaLTGNm (ORCPT ); Sat, 20 Dec 2014 01:13:42 -0500 Date: Sat, 20 Dec 2014 06:13:37 +0000 From: Al Viro To: Omar Sandoval Cc: Andrew Morton , Trond Myklebust , Christoph Hellwig , linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, Mel Gorman Subject: Re: [PATCH v2 4/5] swapfile: use ->read_iter and ->write_iter Message-ID: <20141220061337.GB22149@ZenIV.linux.org.uk> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Dec 19, 2014 at 07:18:28PM -0800, Omar Sandoval wrote: > + ret = swap_file->f_op->read_iter(&kiocb, &to); > + if (ret == PAGE_SIZE) { > + SetPageUptodate(page); > count_vm_event(PSWPIN); > + ret = 0; > + } else { > + ClearPageUptodate(page); > + SetPageError(page); > + } > + unlock_page(page); Umm... What's to guarantee that ->read_iter() won't try lock_page() on what turns out to be equal to page?