* linux-next: commit "GFS2: Clean up log write code path" breakage @ 2012-04-19 1:26 Paul Gortmaker 2012-04-19 9:34 ` [Cluster-devel] " Steven Whitehouse 2012-04-19 10:12 ` [Cluster-devel] " Steven Whitehouse 0 siblings, 2 replies; 5+ messages in thread From: Paul Gortmaker @ 2012-04-19 1:26 UTC (permalink / raw) To: swhiteho; +Cc: linux-next, cluster-devel Hi Steven, When you have a chance can you look at this? Git bisect says that this commit: ---------- commit e80623efc450fb615d1496774c8d5c063a50fb3a Author: Steven Whitehouse <swhiteho@redhat.com> Date: Mon Apr 16 09:28:31 2012 +0100 GFS2: Clean up log write code path ---------- has caused the failure seen in several allmodconfigs (sparc, m68k). fs/gfs2/lops.c:379:42: error: request for member 'virtual' in something not a structure or union make[3]: *** [fs/gfs2/lops.o] Error 1 Here are some examples: http://kisskb.ellerman.id.au/kisskb/buildresult/6131431/ http://kisskb.ellerman.id.au/kisskb/buildresult/6131694/ http://kisskb.ellerman.id.au/kisskb/buildresult/6131511/ Thanks, Paul. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: linux-next: commit "GFS2: Clean up log write code path" breakage 2012-04-19 1:26 linux-next: commit "GFS2: Clean up log write code path" breakage Paul Gortmaker @ 2012-04-19 9:34 ` Steven Whitehouse 2012-04-19 10:12 ` [Cluster-devel] " Steven Whitehouse 1 sibling, 0 replies; 5+ messages in thread From: Steven Whitehouse @ 2012-04-19 9:34 UTC (permalink / raw) To: Paul Gortmaker; +Cc: linux-next, cluster-devel Hi, On Wed, 2012-04-18 at 21:26 -0400, Paul Gortmaker wrote: > Hi Steven, > > When you have a chance can you look at this? Git bisect says that > this commit: > Yes, I can see what that is... the most amazing thing is that it ever worked in the first place. I'm cooking up a patch to fix it which should be ready very shortly, Steve. > ---------- > commit e80623efc450fb615d1496774c8d5c063a50fb3a > Author: Steven Whitehouse <swhiteho@redhat.com> > Date: Mon Apr 16 09:28:31 2012 +0100 > > GFS2: Clean up log write code path > ---------- > > has caused the failure seen in several allmodconfigs (sparc, m68k). > > fs/gfs2/lops.c:379:42: error: request for member 'virtual' in > something not a structure or union > make[3]: *** [fs/gfs2/lops.o] Error 1 > > Here are some examples: > > http://kisskb.ellerman.id.au/kisskb/buildresult/6131431/ > http://kisskb.ellerman.id.au/kisskb/buildresult/6131694/ > http://kisskb.ellerman.id.au/kisskb/buildresult/6131511/ > > Thanks, > Paul. ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Cluster-devel] linux-next: commit "GFS2: Clean up log write code path" breakage @ 2012-04-19 9:34 ` Steven Whitehouse 0 siblings, 0 replies; 5+ messages in thread From: Steven Whitehouse @ 2012-04-19 9:34 UTC (permalink / raw) To: cluster-devel.redhat.com Hi, On Wed, 2012-04-18 at 21:26 -0400, Paul Gortmaker wrote: > Hi Steven, > > When you have a chance can you look at this? Git bisect says that > this commit: > Yes, I can see what that is... the most amazing thing is that it ever worked in the first place. I'm cooking up a patch to fix it which should be ready very shortly, Steve. > ---------- > commit e80623efc450fb615d1496774c8d5c063a50fb3a > Author: Steven Whitehouse <swhiteho@redhat.com> > Date: Mon Apr 16 09:28:31 2012 +0100 > > GFS2: Clean up log write code path > ---------- > > has caused the failure seen in several allmodconfigs (sparc, m68k). > > fs/gfs2/lops.c:379:42: error: request for member 'virtual' in > something not a structure or union > make[3]: *** [fs/gfs2/lops.o] Error 1 > > Here are some examples: > > http://kisskb.ellerman.id.au/kisskb/buildresult/6131431/ > http://kisskb.ellerman.id.au/kisskb/buildresult/6131694/ > http://kisskb.ellerman.id.au/kisskb/buildresult/6131511/ > > Thanks, > Paul. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: linux-next: commit "GFS2: Clean up log write code path" breakage 2012-04-19 1:26 linux-next: commit "GFS2: Clean up log write code path" breakage Paul Gortmaker @ 2012-04-19 10:12 ` Steven Whitehouse 2012-04-19 10:12 ` [Cluster-devel] " Steven Whitehouse 1 sibling, 0 replies; 5+ messages in thread From: Steven Whitehouse @ 2012-04-19 10:12 UTC (permalink / raw) To: Paul Gortmaker; +Cc: linux-next, cluster-devel Hi, On Wed, 2012-04-18 at 21:26 -0400, Paul Gortmaker wrote: > Hi Steven, > > When you have a chance can you look at this? Git bisect says that > this commit: > > ---------- > commit e80623efc450fb615d1496774c8d5c063a50fb3a > Author: Steven Whitehouse <swhiteho@redhat.com> > Date: Mon Apr 16 09:28:31 2012 +0100 > > GFS2: Clean up log write code path > ---------- > This should do the trick... I've rolled in a couple of other small fixes that I had pending too. I guess probably page_address() was a macro on the problematic arches which is why they hit it, but x86_64 did not. I've pushed the patch to my -nmw git tree, so that it should appear in the next -next. Thanks for the bug report, Steve. >From 3c1d908182c084972276b1196fb0ef6f1c419c68 Mon Sep 17 00:00:00 2001 From: Steven Whitehouse <swhiteho@redhat.com> Date: Thu, 19 Apr 2012 10:38:50 +0100 Subject: [PATCH] GFS2: Log code fixes This patch removes a log lock from around atomic operation where it is not needed, removes an unused variable, and also changes a void pointer used incorrectly to a struct page pointer. Signed-off-by: Steven Whitehouse <swhiteho@redhat.com> diff --git a/fs/gfs2/log.c b/fs/gfs2/log.c index 2307218..db9cb18 100644 --- a/fs/gfs2/log.c +++ b/fs/gfs2/log.c @@ -643,10 +643,8 @@ void gfs2_log_flush(struct gfs2_sbd *sdp, struct gfs2_glock *gl) if (sdp->sd_log_head != sdp->sd_log_flush_head) { log_write_header(sdp, 0); } else if (sdp->sd_log_tail != current_tail(sdp) && !sdp->sd_log_idle){ - gfs2_log_lock(sdp); atomic_dec(&sdp->sd_log_blks_free); /* Adjust for unreserved buffer */ trace_gfs2_log_blocks(sdp, -1); - gfs2_log_unlock(sdp); log_write_header(sdp, 0); } lops_after_commit(sdp, ai); @@ -797,11 +795,9 @@ int gfs2_logd(void *data) struct gfs2_sbd *sdp = data; unsigned long t = 1; DEFINE_WAIT(wait); - unsigned preflush; while (!kthread_should_stop()) { - preflush = atomic_read(&sdp->sd_log_pinned); if (gfs2_jrnl_flush_reqd(sdp) || t == 0) { gfs2_ail1_empty(sdp); gfs2_log_flush(sdp, NULL); diff --git a/fs/gfs2/lops.c b/fs/gfs2/lops.c index e9709da..11fedb5 100644 --- a/fs/gfs2/lops.c +++ b/fs/gfs2/lops.c @@ -375,7 +375,7 @@ void gfs2_log_write_page(struct gfs2_sbd *sdp, struct page *page) static struct page *gfs2_get_log_desc(struct gfs2_sbd *sdp, u32 ld_type, u32 ld_length, u32 ld_data1) { - void *page = mempool_alloc(gfs2_page_pool, GFP_NOIO); + struct page *page = mempool_alloc(gfs2_page_pool, GFP_NOIO); struct gfs2_log_descriptor *ld = page_address(page); clear_page(ld); ld->ld_header.mh_magic = cpu_to_be32(GFS2_MAGIC); -- 1.7.4 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Cluster-devel] linux-next: commit "GFS2: Clean up log write code path" breakage @ 2012-04-19 10:12 ` Steven Whitehouse 0 siblings, 0 replies; 5+ messages in thread From: Steven Whitehouse @ 2012-04-19 10:12 UTC (permalink / raw) To: cluster-devel.redhat.com Hi, On Wed, 2012-04-18 at 21:26 -0400, Paul Gortmaker wrote: > Hi Steven, > > When you have a chance can you look at this? Git bisect says that > this commit: > > ---------- > commit e80623efc450fb615d1496774c8d5c063a50fb3a > Author: Steven Whitehouse <swhiteho@redhat.com> > Date: Mon Apr 16 09:28:31 2012 +0100 > > GFS2: Clean up log write code path > ---------- > This should do the trick... I've rolled in a couple of other small fixes that I had pending too. I guess probably page_address() was a macro on the problematic arches which is why they hit it, but x86_64 did not. I've pushed the patch to my -nmw git tree, so that it should appear in the next -next. Thanks for the bug report, Steve. From 3c1d908182c084972276b1196fb0ef6f1c419c68 Mon Sep 17 00:00:00 2001 From: Steven Whitehouse <swhiteho@redhat.com> Date: Thu, 19 Apr 2012 10:38:50 +0100 Subject: [PATCH] GFS2: Log code fixes This patch removes a log lock from around atomic operation where it is not needed, removes an unused variable, and also changes a void pointer used incorrectly to a struct page pointer. Signed-off-by: Steven Whitehouse <swhiteho@redhat.com> diff --git a/fs/gfs2/log.c b/fs/gfs2/log.c index 2307218..db9cb18 100644 --- a/fs/gfs2/log.c +++ b/fs/gfs2/log.c @@ -643,10 +643,8 @@ void gfs2_log_flush(struct gfs2_sbd *sdp, struct gfs2_glock *gl) if (sdp->sd_log_head != sdp->sd_log_flush_head) { log_write_header(sdp, 0); } else if (sdp->sd_log_tail != current_tail(sdp) && !sdp->sd_log_idle){ - gfs2_log_lock(sdp); atomic_dec(&sdp->sd_log_blks_free); /* Adjust for unreserved buffer */ trace_gfs2_log_blocks(sdp, -1); - gfs2_log_unlock(sdp); log_write_header(sdp, 0); } lops_after_commit(sdp, ai); @@ -797,11 +795,9 @@ int gfs2_logd(void *data) struct gfs2_sbd *sdp = data; unsigned long t = 1; DEFINE_WAIT(wait); - unsigned preflush; while (!kthread_should_stop()) { - preflush = atomic_read(&sdp->sd_log_pinned); if (gfs2_jrnl_flush_reqd(sdp) || t == 0) { gfs2_ail1_empty(sdp); gfs2_log_flush(sdp, NULL); diff --git a/fs/gfs2/lops.c b/fs/gfs2/lops.c index e9709da..11fedb5 100644 --- a/fs/gfs2/lops.c +++ b/fs/gfs2/lops.c @@ -375,7 +375,7 @@ void gfs2_log_write_page(struct gfs2_sbd *sdp, struct page *page) static struct page *gfs2_get_log_desc(struct gfs2_sbd *sdp, u32 ld_type, u32 ld_length, u32 ld_data1) { - void *page = mempool_alloc(gfs2_page_pool, GFP_NOIO); + struct page *page = mempool_alloc(gfs2_page_pool, GFP_NOIO); struct gfs2_log_descriptor *ld = page_address(page); clear_page(ld); ld->ld_header.mh_magic = cpu_to_be32(GFS2_MAGIC); -- 1.7.4 ^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-04-19 10:12 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2012-04-19 1:26 linux-next: commit "GFS2: Clean up log write code path" breakage Paul Gortmaker 2012-04-19 9:34 ` Steven Whitehouse 2012-04-19 9:34 ` [Cluster-devel] " Steven Whitehouse 2012-04-19 10:12 ` Steven Whitehouse 2012-04-19 10:12 ` [Cluster-devel] " 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.