All of lore.kernel.org
 help / color / mirror / Atom feed
* [Cluster-devel] GFS2: Clear dirty bit at end of inode glock sync
@ 2009-04-20  9:16 Steven Whitehouse
  2009-04-20  9:18 ` Steven Whitehouse
  0 siblings, 1 reply; 2+ messages in thread
From: Steven Whitehouse @ 2009-04-20  9:16 UTC (permalink / raw)
  To: cluster-devel.redhat.com

From 5e60bcaa263dac8a3df4334459414bcb0808009f Mon Sep 17 00:00:00 2001
From: Steven Whitehouse <swhiteho@redhat.com>
Date: Mon, 20 Apr 2009 08:58:45 +0100
Subject: [PATCH] GFS2: Clear dirty bit at end of inode glock sync

The dirty bit can get set during the inode glock sync. Its too
complicated to change that at the moment, so this is the quick
fix - to clear the bit again at the end of the function.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>

diff --git a/fs/gfs2/glops.c b/fs/gfs2/glops.c
index bf23a62..70f87f4 100644
--- a/fs/gfs2/glops.c
+++ b/fs/gfs2/glops.c
@@ -156,6 +156,12 @@ static void inode_go_sync(struct gfs2_glock *gl)
 	error = filemap_fdatawait(metamapping);
 	mapping_set_error(metamapping, error);
 	gfs2_ail_empty_gl(gl);
+	/*
+	 * Writeback of the data mapping may cause the dirty flag to be set
+	 * so we have to clear it again here.
+	 */
+	smp_mb__before_clear_bit();
+	clear_bit(GLF_DIRTY, &gl->gl_flags);
 }
 
 /**
-- 
1.6.0.6





^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [Cluster-devel] GFS2: Clear dirty bit at end of inode glock sync
  2009-04-20  9:16 [Cluster-devel] GFS2: Clear dirty bit at end of inode glock sync Steven Whitehouse
@ 2009-04-20  9:18 ` Steven Whitehouse
  0 siblings, 0 replies; 2+ messages in thread
From: Steven Whitehouse @ 2009-04-20  9:18 UTC (permalink / raw)
  To: cluster-devel.redhat.com

Hi,

I should also add that this patch has gone into the -fixes tree as well
and I'm intending to push it to Linus fairly shortly,

Steve.

On Mon, 2009-04-20 at 10:16 +0100, Steven Whitehouse wrote:
> >From 5e60bcaa263dac8a3df4334459414bcb0808009f Mon Sep 17 00:00:00 2001
> From: Steven Whitehouse <swhiteho@redhat.com>
> Date: Mon, 20 Apr 2009 08:58:45 +0100
> Subject: [PATCH] GFS2: Clear dirty bit at end of inode glock sync
> 
> The dirty bit can get set during the inode glock sync. Its too
> complicated to change that at the moment, so this is the quick
> fix - to clear the bit again at the end of the function.
> 
> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
> 
> diff --git a/fs/gfs2/glops.c b/fs/gfs2/glops.c
> index bf23a62..70f87f4 100644
> --- a/fs/gfs2/glops.c
> +++ b/fs/gfs2/glops.c
> @@ -156,6 +156,12 @@ static void inode_go_sync(struct gfs2_glock *gl)
>  	error = filemap_fdatawait(metamapping);
>  	mapping_set_error(metamapping, error);
>  	gfs2_ail_empty_gl(gl);
> +	/*
> +	 * Writeback of the data mapping may cause the dirty flag to be set
> +	 * so we have to clear it again here.
> +	 */
> +	smp_mb__before_clear_bit();
> +	clear_bit(GLF_DIRTY, &gl->gl_flags);
>  }
>  
>  /**



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2009-04-20  9:18 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-04-20  9:16 [Cluster-devel] GFS2: Clear dirty bit at end of inode glock sync Steven Whitehouse
2009-04-20  9:18 ` Steven Whitehouse

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.