From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steven Whitehouse Subject: Re: [PATCH 13/19] gfs2: Convert to new freezing mechanism Date: Thu, 29 Mar 2012 11:38:11 +0100 Message-ID: <1333017491.2735.2.camel@menhir> References: <1332978214-15535-1-git-send-email-jack@suse.cz> <1332978214-15535-14-git-send-email-jack@suse.cz> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Cc: linux-fsdevel@vger.kernel.org, Al Viro , dchinner@redhat.com, sandeen@redhat.com, Kamal Mostafa , cluster-devel@redhat.com To: Jan Kara Return-path: Received: from mx1.redhat.com ([209.132.183.28]:65446 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751116Ab2C2Ki1 (ORCPT ); Thu, 29 Mar 2012 06:38:27 -0400 In-Reply-To: <1332978214-15535-14-git-send-email-jack@suse.cz> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: 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@redhat.com > CC: Steven Whitehouse > Signed-off-by: Jan Kara I think that looks ok to me... Acked-by: Steven Whitehouse 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); > } >