Hi, On Thu, 2012-03-29 at 01:43 +0200, Jan Kara wrote: > It is enough to update gfs2_page_mkwrite() to use new freeze protection. > Rest is handled by the generic code. > > CC: cluster-devel@xxxxxxxxxx > CC: Steven Whitehouse <swhiteho@xxxxxxxxxx> > Signed-off-by: Jan Kara <jack@xxxxxxx> I think that looks ok to me... Acked-by: Steven Whitehouse <swhiteho@xxxxxxxxxx> Steve. > --- > fs/gfs2/file.c | 15 +++------------ > 1 files changed, 3 insertions(+), 12 deletions(-) > > diff --git a/fs/gfs2/file.c b/fs/gfs2/file.c > index 1f03531..806b7a4 100644 > --- a/fs/gfs2/file.c > +++ b/fs/gfs2/file.c > @@ -369,11 +369,7 @@ static int gfs2_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf) > loff_t size; > int ret; > > - /* Wait if fs is frozen. This is racy so we check again later on > - * and retry if the fs has been frozen after the page lock has > - * been acquired > - */ > - vfs_check_frozen(inode->i_sb, SB_FREEZE_WRITE); > + sb_start_pagefault(inode->i_sb); > > /* Update file times before taking page lock */ > file_update_time(vma->vm_file); > @@ -457,14 +453,9 @@ out: > gfs2_holder_uninit(&gh); > if (ret == 0) { > set_page_dirty(page); > - /* This check must be post dropping of transaction lock */ > - if (inode->i_sb->s_frozen == SB_UNFROZEN) { > - wait_on_page_writeback(page); > - } else { > - ret = -EAGAIN; > - unlock_page(page); > - } > + wait_on_page_writeback(page); > } > + sb_end_pagefault(inode->i_sb); > return block_page_mkwrite_return(ret); > } > -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html