Patchwork [5/6] ocfs2: Wait for page writeback to provide stable pages

login
register
mail settings
Submitter Darrick J. Wong
Date Jan. 19, 2013, 1:13 a.m.
Message ID <20130119011308.20902.44871.stgit@blackbox.djwong.org>
Download mbox | patch
Permalink /patch/213765/
State Not Applicable
Headers show

Comments

Darrick J. Wong - Jan. 19, 2013, 1:13 a.m.
When stable pages are required, we have to wait if the page is just
going to disk and we want to modify it. Add proper callback to
ocfs2_grab_pages_for_write().

CC: ocfs2-devel@oss.oracle.com
CC: Joel Becker <jlbec@evilplan.org>
CC: Mark Fasheh <mfasheh@suse.com>
From: Jan Kara <jack@suse.cz>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
---
 fs/ocfs2/aops.c |    1 +
 1 file changed, 1 insertion(+)



--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Joel Becker - Jan. 30, 2013, 1:03 a.m.
Acked-by: Joel Becker <jlbec@evilplan.org>

On Fri, Jan 18, 2013 at 05:13:08PM -0800, Darrick J. Wong wrote:
> When stable pages are required, we have to wait if the page is just
> going to disk and we want to modify it. Add proper callback to
> ocfs2_grab_pages_for_write().
> 
> CC: ocfs2-devel@oss.oracle.com
> CC: Joel Becker <jlbec@evilplan.org>
> CC: Mark Fasheh <mfasheh@suse.com>
> From: Jan Kara <jack@suse.cz>
> Signed-off-by: Jan Kara <jack@suse.cz>
> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
> ---
>  fs/ocfs2/aops.c |    1 +
>  1 file changed, 1 insertion(+)
> 
> 
> diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c
> index 6577432..9796330 100644
> --- a/fs/ocfs2/aops.c
> +++ b/fs/ocfs2/aops.c
> @@ -1194,6 +1194,7 @@ static int ocfs2_grab_pages_for_write(struct address_space *mapping,
>  				goto out;
>  			}
>  		}
> +		wait_for_stable_page(wc->w_pages[i]);
>  
>  		if (index == target_index)
>  			wc->w_target_page = wc->w_pages[i];
>

Patch

diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c
index 6577432..9796330 100644
--- a/fs/ocfs2/aops.c
+++ b/fs/ocfs2/aops.c
@@ -1194,6 +1194,7 @@  static int ocfs2_grab_pages_for_write(struct address_space *mapping,
 				goto out;
 			}
 		}
+		wait_for_stable_page(wc->w_pages[i]);
 
 		if (index == target_index)
 			wc->w_target_page = wc->w_pages[i];