From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753838AbZECBtT (ORCPT ); Sat, 2 May 2009 21:49:19 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752106AbZECBtF (ORCPT ); Sat, 2 May 2009 21:49:05 -0400 Received: from mx2.netapp.com ([216.240.18.37]:62762 "EHLO mx2.netapp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751323AbZECBtE (ORCPT ); Sat, 2 May 2009 21:49:04 -0400 X-IronPort-AV: E=Sophos;i="4.40,284,1239001200"; d="scan'208";a="165675975" From: Trond Myklebust To: Linus Torvalds Cc: linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org Date: Fri, 24 Apr 2009 17:32:22 -0400 Subject: [PATCH] NFS: Close page_mkwrite() races Message-Id: <1241315252.15825.0.camel@heimdal.trondhjem.org> Mime-Version: 1.0 X-Mailer: Evolution 2.26.1 X-OriginalArrivalTime: 03 May 2009 01:48:41.0076 (UTC) FILETIME=[48E9FB40:01C9CB91] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Follow up to Nick Piggin's patches to ensure that nfs_vm_page_mkwrite returns with the page lock held, and sets the VM_FAULT_LOCKED flag. See http://bugzilla.kernel.org/show_bug.cgi?id=12913 Signed-off-by: Trond Myklebust --- fs/nfs/file.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/fs/nfs/file.c b/fs/nfs/file.c index 5a97bcf..ec7e27d 100644 --- a/fs/nfs/file.c +++ b/fs/nfs/file.c @@ -517,10 +517,10 @@ static int nfs_vm_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf) ret = nfs_updatepage(filp, page, 0, pagelen); out_unlock: + if (!ret) + return VM_FAULT_LOCKED; unlock_page(page); - if (ret) - ret = VM_FAULT_SIGBUS; - return ret; + return VM_FAULT_SIGBUS; } static struct vm_operations_struct nfs_file_vm_ops = { -- 1.6.0.6