linux-next: build failure after merge of the ext4 tree

From: Stephen Rothwell
Date: Mon Jan 02 2012 - 19:35:44 EST


Hi Ted,

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 <sfr@xxxxxxxxxxxxxxxx>
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 <sfr@xxxxxxxxxxxxxxxx>
---
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:
--
1.7.8.197.g73c6b

--
Cheers,
Stephen Rothwell sfr@xxxxxxxxxxxxxxxx

Attachment: pgp00000.pgp
Description: PGP signature