From: "Darrick J. Wong" Subject: Re: [PATCH 2/7] fs: block_page_mkwrite should wait for writeback to finish Date: Tue, 10 May 2011 10:12:45 -0700 Message-ID: <20110510171245.GF18929@tux1.beaverton.ibm.com> References: <20110509230318.19566.66202.stgit@elm3c44.beaverton.ibm.com> <20110509230334.19566.17603.stgit@elm3c44.beaverton.ibm.com> <20110510124103.GC4402@quack.suse.cz> Reply-To: djwong@us.ibm.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Theodore Tso , Alexander Viro , OGAWA Hirofumi , Jens Axboe , "Martin K. Petersen" , Jeff Layton , Dave Chinner , linux-kernel , Dave Hansen , Christoph Hellwig , linux-mm@kvack.org, Chris Mason , Joel Becker , linux-scsi , linux-fsdevel , linux-ext4@vger.kernel.org, Mingming Cao To: Jan Kara Return-path: Content-Disposition: inline In-Reply-To: <20110510124103.GC4402@quack.suse.cz> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-ext4.vger.kernel.org For filesystems such as nilfs2 and xfs that use block_page_mkwrite, modify that function to wait for pending writeback before allowing the page to become writable. This is needed to stabilize pages during writeback for those two filesystems. Slight rework based on Jan Kara's suggestion. Signed-off-by: Darrick J. Wong --- fs/buffer.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/fs/buffer.c b/fs/buffer.c index a08bb8e..0e7fa16 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -2367,8 +2367,10 @@ block_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf, ret = VM_FAULT_OOM; else /* -ENOSPC, -EIO, etc */ ret = VM_FAULT_SIGBUS; - } else + } else { + wait_on_page_writeback(page); ret = VM_FAULT_LOCKED; + } out: return ret;