* linux-next: build failure after merge of the final tree (ext4 tree related)
@ 2012-12-04 6:13 Stephen Rothwell
2012-12-04 13:10 ` Tao Ma
0 siblings, 1 reply; 2+ messages in thread
From: Stephen Rothwell @ 2012-12-04 6:13 UTC (permalink / raw)
To: Theodore Ts'o; +Cc: linux-next, linux-kernel, Tao Ma, Joel Becker
[-- Attachment #1: Type: text/plain, Size: 5764 bytes --]
Hi all,
After merging the final tree, today's linux-next build (powerpc
allyesconfig) failed like this:
fs/ocfs2/built-in.o: In function `.walk_page_buffers':
(.text+0x2c104): multiple definition of `.walk_page_buffers'
fs/ext4/built-in.o:(.text+0x10c1c): first defined here
fs/ocfs2/built-in.o: In function `walk_page_buffers':
(.opd+0x1020): multiple definition of `walk_page_buffers'
fs/ext4/built-in.o:(.opd+0xa68): first defined here
Caused by commit c99dcc3889f5 ("ext4: add normal write support for inline
data") from the ext4 tree. Who would have thought that a generic name
like that would clash? ;-(
Grep is your friend ...
I have added this patch for today (ocfs2 might like to apply something
similar):
From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Tue, 4 Dec 2012 17:06:30 +1100
Subject: [PATCH] ext4: use a less generic version of the name walk_page_buffers
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
fs/ext4/ext4.h | 2 +-
fs/ext4/inline.c | 2 +-
fs/ext4/inode.c | 20 ++++++++++----------
3 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
index 9e30958..b1a169a 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -2057,7 +2057,7 @@ int ext4_get_block(struct inode *inode, sector_t iblock,
struct buffer_head *bh_result, int create);
int ext4_da_get_block_prep(struct inode *inode, sector_t iblock,
struct buffer_head *bh, int create);
-int walk_page_buffers(handle_t *handle,
+int ext4_walk_page_buffers(handle_t *handle,
struct buffer_head *head,
unsigned from,
unsigned to,
diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c
index 811457e..1fe0cc4 100644
--- a/fs/ext4/inline.c
+++ b/fs/ext4/inline.c
@@ -583,7 +583,7 @@ retry:
ret = __block_write_begin(page, from, to, ext4_get_block);
if (!ret && ext4_should_journal_data(inode)) {
- ret = walk_page_buffers(handle, page_buffers(page),
+ ret = ext4_walk_page_buffers(handle, page_buffers(page),
from, to, NULL, do_journal_get_write_access);
}
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index f92bd69..1a190e0 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -770,7 +770,7 @@ struct buffer_head *ext4_bread(handle_t *handle, struct inode *inode,
return NULL;
}
-int walk_page_buffers(handle_t *handle,
+int ext4_walk_page_buffers(handle_t *handle,
struct buffer_head *head,
unsigned from,
unsigned to,
@@ -911,7 +911,7 @@ retry:
ret = __block_write_begin(page, pos, len, ext4_get_block);
if (!ret && ext4_should_journal_data(inode)) {
- ret = walk_page_buffers(handle, page_buffers(page),
+ ret = ext4_walk_page_buffers(handle, page_buffers(page),
from, to, NULL, do_journal_get_write_access);
}
@@ -1133,7 +1133,7 @@ static int ext4_journalled_write_end(struct file *file,
page_zero_new_buffers(page, from+copied, to);
}
- ret = walk_page_buffers(handle, page_buffers(page), from,
+ ret = ext4_walk_page_buffers(handle, page_buffers(page), from,
to, &partial, write_end_fn);
if (!partial)
SetPageUptodate(page);
@@ -1942,7 +1942,7 @@ static int __ext4_journalled_writepage(struct page *page,
} else {
page_bufs = page_buffers(page);
BUG_ON(!page_bufs);
- walk_page_buffers(handle, page_bufs, 0, len, NULL, bget_one);
+ ext4_walk_page_buffers(handle, page_bufs, 0, len, NULL, bget_one);
}
/* As soon as we unlock the page, it can go away, but we have
* references to buffers so we are safe */
@@ -1962,10 +1962,10 @@ static int __ext4_journalled_writepage(struct page *page,
err = ext4_handle_dirty_metadata(handle, inode, inode_bh);
} else {
- ret = walk_page_buffers(handle, page_bufs, 0, len, NULL,
+ ret = ext4_walk_page_buffers(handle, page_bufs, 0, len, NULL,
do_journal_get_write_access);
- err = walk_page_buffers(handle, page_bufs, 0, len, NULL,
+ err = ext4_walk_page_buffers(handle, page_bufs, 0, len, NULL,
write_end_fn);
}
@@ -1977,7 +1977,7 @@ static int __ext4_journalled_writepage(struct page *page,
ret = err;
if (!ext4_has_inline_data(inode))
- walk_page_buffers(handle, page_bufs, 0, len, NULL, bput_one);
+ ext4_walk_page_buffers(handle, page_bufs, 0, len, NULL, bput_one);
ext4_set_inode_state(inode, EXT4_STATE_JDATA);
out:
brelse(inode_bh);
@@ -2057,7 +2057,7 @@ static int ext4_writepage(struct page *page,
commit_write = 1;
}
page_bufs = page_buffers(page);
- if (walk_page_buffers(NULL, page_bufs, 0, len, NULL,
+ if (ext4_walk_page_buffers(NULL, page_bufs, 0, len, NULL,
ext4_bh_delay_or_unwritten)) {
/*
* We don't want to do block allocation, so redirty
@@ -4888,7 +4888,7 @@ int ext4_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
* journal_start/journal_stop which can block and take a long time
*/
if (page_has_buffers(page)) {
- if (!walk_page_buffers(NULL, page_buffers(page), 0, len, NULL,
+ if (!ext4_walk_page_buffers(NULL, page_buffers(page), 0, len, NULL,
ext4_bh_unmapped)) {
/* Wait so that we don't change page under IO */
wait_on_page_writeback(page);
@@ -4910,7 +4910,7 @@ retry_alloc:
}
ret = __block_page_mkwrite(vma, vmf, get_block);
if (!ret && ext4_should_journal_data(inode)) {
- if (walk_page_buffers(handle, page_buffers(page), 0,
+ if (ext4_walk_page_buffers(handle, page_buffers(page), 0,
PAGE_CACHE_SIZE, NULL, do_journal_get_write_access)) {
unlock_page(page);
ret = VM_FAULT_SIGBUS;
--
1.7.10.280.gaa39
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: linux-next: build failure after merge of the final tree (ext4 tree related)
2012-12-04 6:13 linux-next: build failure after merge of the final tree (ext4 tree related) Stephen Rothwell
@ 2012-12-04 13:10 ` Tao Ma
0 siblings, 0 replies; 2+ messages in thread
From: Tao Ma @ 2012-12-04 13:10 UTC (permalink / raw)
To: Stephen Rothwell
Cc: Theodore Ts'o, linux-next, linux-kernel, Tao Ma, Joel Becker
Hi Stephen,
Thanks for the report.
the corresponding fix is already sent to Ted in the patch named "ext4:
Fix inline data build warning found by kernel build testing.", but it
seems that Ted hasn't pushed it into ext4dev yet.
Thanks
Tao
On 12/04/2012 02:13 PM, Stephen Rothwell wrote:
> Hi all,
>
> After merging the final tree, today's linux-next build (powerpc
> allyesconfig) failed like this:
>
> fs/ocfs2/built-in.o: In function `.walk_page_buffers':
> (.text+0x2c104): multiple definition of `.walk_page_buffers'
> fs/ext4/built-in.o:(.text+0x10c1c): first defined here
> fs/ocfs2/built-in.o: In function `walk_page_buffers':
> (.opd+0x1020): multiple definition of `walk_page_buffers'
> fs/ext4/built-in.o:(.opd+0xa68): first defined here
>
> Caused by commit c99dcc3889f5 ("ext4: add normal write support for inline
> data") from the ext4 tree. Who would have thought that a generic name
> like that would clash? ;-(
>
> Grep is your friend ...
>
> I have added this patch for today (ocfs2 might like to apply something
> similar):
>
> From: Stephen Rothwell <sfr@canb.auug.org.au>
> Date: Tue, 4 Dec 2012 17:06:30 +1100
> Subject: [PATCH] ext4: use a less generic version of the name walk_page_buffers
>
> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
> ---
> fs/ext4/ext4.h | 2 +-
> fs/ext4/inline.c | 2 +-
> fs/ext4/inode.c | 20 ++++++++++----------
> 3 files changed, 12 insertions(+), 12 deletions(-)
>
> diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
> index 9e30958..b1a169a 100644
> --- a/fs/ext4/ext4.h
> +++ b/fs/ext4/ext4.h
> @@ -2057,7 +2057,7 @@ int ext4_get_block(struct inode *inode, sector_t iblock,
> struct buffer_head *bh_result, int create);
> int ext4_da_get_block_prep(struct inode *inode, sector_t iblock,
> struct buffer_head *bh, int create);
> -int walk_page_buffers(handle_t *handle,
> +int ext4_walk_page_buffers(handle_t *handle,
> struct buffer_head *head,
> unsigned from,
> unsigned to,
> diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c
> index 811457e..1fe0cc4 100644
> --- a/fs/ext4/inline.c
> +++ b/fs/ext4/inline.c
> @@ -583,7 +583,7 @@ retry:
> ret = __block_write_begin(page, from, to, ext4_get_block);
>
> if (!ret && ext4_should_journal_data(inode)) {
> - ret = walk_page_buffers(handle, page_buffers(page),
> + ret = ext4_walk_page_buffers(handle, page_buffers(page),
> from, to, NULL, do_journal_get_write_access);
> }
>
> diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
> index f92bd69..1a190e0 100644
> --- a/fs/ext4/inode.c
> +++ b/fs/ext4/inode.c
> @@ -770,7 +770,7 @@ struct buffer_head *ext4_bread(handle_t *handle, struct inode *inode,
> return NULL;
> }
>
> -int walk_page_buffers(handle_t *handle,
> +int ext4_walk_page_buffers(handle_t *handle,
> struct buffer_head *head,
> unsigned from,
> unsigned to,
> @@ -911,7 +911,7 @@ retry:
> ret = __block_write_begin(page, pos, len, ext4_get_block);
>
> if (!ret && ext4_should_journal_data(inode)) {
> - ret = walk_page_buffers(handle, page_buffers(page),
> + ret = ext4_walk_page_buffers(handle, page_buffers(page),
> from, to, NULL, do_journal_get_write_access);
> }
>
> @@ -1133,7 +1133,7 @@ static int ext4_journalled_write_end(struct file *file,
> page_zero_new_buffers(page, from+copied, to);
> }
>
> - ret = walk_page_buffers(handle, page_buffers(page), from,
> + ret = ext4_walk_page_buffers(handle, page_buffers(page), from,
> to, &partial, write_end_fn);
> if (!partial)
> SetPageUptodate(page);
> @@ -1942,7 +1942,7 @@ static int __ext4_journalled_writepage(struct page *page,
> } else {
> page_bufs = page_buffers(page);
> BUG_ON(!page_bufs);
> - walk_page_buffers(handle, page_bufs, 0, len, NULL, bget_one);
> + ext4_walk_page_buffers(handle, page_bufs, 0, len, NULL, bget_one);
> }
> /* As soon as we unlock the page, it can go away, but we have
> * references to buffers so we are safe */
> @@ -1962,10 +1962,10 @@ static int __ext4_journalled_writepage(struct page *page,
> err = ext4_handle_dirty_metadata(handle, inode, inode_bh);
>
> } else {
> - ret = walk_page_buffers(handle, page_bufs, 0, len, NULL,
> + ret = ext4_walk_page_buffers(handle, page_bufs, 0, len, NULL,
> do_journal_get_write_access);
>
> - err = walk_page_buffers(handle, page_bufs, 0, len, NULL,
> + err = ext4_walk_page_buffers(handle, page_bufs, 0, len, NULL,
> write_end_fn);
> }
>
> @@ -1977,7 +1977,7 @@ static int __ext4_journalled_writepage(struct page *page,
> ret = err;
>
> if (!ext4_has_inline_data(inode))
> - walk_page_buffers(handle, page_bufs, 0, len, NULL, bput_one);
> + ext4_walk_page_buffers(handle, page_bufs, 0, len, NULL, bput_one);
> ext4_set_inode_state(inode, EXT4_STATE_JDATA);
> out:
> brelse(inode_bh);
> @@ -2057,7 +2057,7 @@ static int ext4_writepage(struct page *page,
> commit_write = 1;
> }
> page_bufs = page_buffers(page);
> - if (walk_page_buffers(NULL, page_bufs, 0, len, NULL,
> + if (ext4_walk_page_buffers(NULL, page_bufs, 0, len, NULL,
> ext4_bh_delay_or_unwritten)) {
> /*
> * We don't want to do block allocation, so redirty
> @@ -4888,7 +4888,7 @@ int ext4_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
> * journal_start/journal_stop which can block and take a long time
> */
> if (page_has_buffers(page)) {
> - if (!walk_page_buffers(NULL, page_buffers(page), 0, len, NULL,
> + if (!ext4_walk_page_buffers(NULL, page_buffers(page), 0, len, NULL,
> ext4_bh_unmapped)) {
> /* Wait so that we don't change page under IO */
> wait_on_page_writeback(page);
> @@ -4910,7 +4910,7 @@ retry_alloc:
> }
> ret = __block_page_mkwrite(vma, vmf, get_block);
> if (!ret && ext4_should_journal_data(inode)) {
> - if (walk_page_buffers(handle, page_buffers(page), 0,
> + if (ext4_walk_page_buffers(handle, page_buffers(page), 0,
> PAGE_CACHE_SIZE, NULL, do_journal_get_write_access)) {
> unlock_page(page);
> ret = VM_FAULT_SIGBUS;
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2012-12-04 13:11 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-12-04 6:13 linux-next: build failure after merge of the final tree (ext4 tree related) Stephen Rothwell
2012-12-04 13:10 ` Tao Ma
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).