HI Ted, On Tue, 3 Jan 2012 11:35:33 +1100 Stephen Rothwell wrote: > > After merging the ext4 tree, today's linux-next build (powerpc > ppc64_defconfig) failed like this: > > fs/jbd2/built-in.o: In function `journal_clear_buffer_revoked_flags': > (.opd+0x5b8): multiple definition of `journal_clear_buffer_revoked_flags' > fs/jbd/built-in.o:(.opd+0x570): first defined here > fs/jbd2/built-in.o: In function `.journal_clear_buffer_revoked_flags': > (.text+0x7e80): multiple definition of `.journal_clear_buffer_revoked_flags' > fs/jbd/built-in.o:(.text+0x7970): first defined here > > Caused by commit 7834c98154f1 ("jbd2: clear revoked flag on buffers > before a new transaction started") interacting with commit 8c111b3f5633 > ("jbd: clear revoked flag on buffers before a new transaction started") > form the ext3 tree. > > I applied this merge fix patch: > > From: Stephen Rothwell > Date: Tue, 3 Jan 2012 11:31:37 +1100 > Subject: [PATCH] jbd2: sanitize a new global symbol > (journal_clear_buffer_revoked_flags) > > Fixes these build errors (when combined with the ext3 tree): > > fs/jbd2/built-in.o: In function `journal_clear_buffer_revoked_flags': > (.opd+0x5b8): multiple definition of `journal_clear_buffer_revoked_flags' > fs/jbd/built-in.o:(.opd+0x570): first defined here > > Signed-off-by: Stephen Rothwell > --- > fs/jbd2/commit.c | 2 +- > fs/jbd2/revoke.c | 2 +- > include/linux/jbd2.h | 2 +- > 3 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/fs/jbd2/commit.c b/fs/jbd2/commit.c > index 7f99e17..3f5c545 100644 > --- a/fs/jbd2/commit.c > +++ b/fs/jbd2/commit.c > @@ -433,7 +433,7 @@ void jbd2_journal_commit_transaction(journal_t *journal) > * Clear revoked flag to reflect there is no revoked buffers > * in the next transaction which is going to be started. > */ > - journal_clear_buffer_revoked_flags(journal); > + jbd2_journal_clear_buffer_revoked_flags(journal); > > /* > * Switch to a new revoke table. > diff --git a/fs/jbd2/revoke.c b/fs/jbd2/revoke.c > index 1c36138..c99d839 100644 > --- a/fs/jbd2/revoke.c > +++ b/fs/jbd2/revoke.c > @@ -487,7 +487,7 @@ int jbd2_journal_cancel_revoke(handle_t *handle, struct journal_head *jh) > * revoke table to reflect there is no revoked buffers in the next > * transaction which is going to be started. > */ > -void journal_clear_buffer_revoked_flags(journal_t *journal) > +void jbd2_journal_clear_buffer_revoked_flags(journal_t *journal) > { > struct jbd2_revoke_table_s *revoke = journal->j_revoke; > int i = 0; > diff --git a/include/linux/jbd2.h b/include/linux/jbd2.h > index 17bf089..44b8072 100644 > --- a/include/linux/jbd2.h > +++ b/include/linux/jbd2.h > @@ -1151,7 +1151,7 @@ extern int jbd2_journal_set_revoke(journal_t *, unsigned long long, tid_t); > extern int jbd2_journal_test_revoke(journal_t *, unsigned long long, tid_t); > extern void jbd2_journal_clear_revoke(journal_t *); > extern void jbd2_journal_switch_revoke_table(journal_t *journal); > -extern void journal_clear_buffer_revoked_flags(journal_t *journal); > +extern void jbd2_journal_clear_buffer_revoked_flags(journal_t *journal); > > /* > * The log thread user interface: Ping? -- Cheers, Stephen Rothwell sfr@canb.auug.org.au http://www.canb.auug.org.au/~sfr/