From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Kara Subject: [PATCH] mm: Add wait for page writeback in filemap_page_mkwrite() Date: Wed, 31 Oct 2012 11:38:29 +0100 Message-ID: <1351679910-18264-1-git-send-email-jack@suse.cz> Cc: linux-fsdevel@vger.kernel.org, Jan Kara To: "Darrick J. Wong" Return-path: Received: from cantor2.suse.de ([195.135.220.15]:40397 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1422661Ab2JaKic (ORCPT ); Wed, 31 Oct 2012 06:38:32 -0400 Sender: linux-fsdevel-owner@vger.kernel.org List-ID: filemap_page_mkwrite() is the default function to handle writeable fault of a page. So make it wait for page writeback when stable pages during write are required by the underlying bdi. Signed-off-by: Jan Kara --- mm/filemap.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) Darrick, can you add something like this patch to your series? After it the only filesystems that don't get stable pages right are ncpfs, ceph, cifs, ubifs, and ocfs2. There are also other filesystems which will end up calling wait_on_page_writeback() unconditionally. I can fix these once the generic patches are stabilized. diff --git a/mm/filemap.c b/mm/filemap.c index 83efee7..d4ed2c3 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -1728,6 +1728,8 @@ int filemap_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf) * see the dirty page and writeprotect it again. */ set_page_dirty(page); + if (mapping_cap_stable_write(page->mapping)) + wait_on_page_writeback(page); out: sb_end_pagefault(inode->i_sb); return ret; -- 1.7.1