Skip to contentSkip to conversation

Compile error of latest hotfix release of btrfs

DISCUSSION Tarkan Erimer 3 participants 5 messages Nov 3, 2008 Btrfs file system

lore
Share & tools
lore
#0 lore raw

Hi,

I use Kubuntu-8.10 with custom kernel 2.6.28-rc2 and my gcc version is "gcc (Ubuntu 4.3.2-1ubuntu11) 4.3.2". When I tried to compile latest btrfs source, I got these error messages :

tarkane@tarkane:/media/disk/kernel-417d87e57364$ make
bash version.sh
make -C /lib/modules/`uname -r`/build M=`pwd` modules
make[1]: Entering directory `/usr/src/linux-2.6.28-rc2'
CC [M] /media/disk/kernel-417d87e57364/super.o
CC [M] /media/disk/kernel-417d87e57364/ctree.o
CC [M] /media/disk/kernel-417d87e57364/extent-tree.o
CC [M] /media/disk/kernel-417d87e57364/print-tree.o
CC [M] /media/disk/kernel-417d87e57364/root-tree.o
CC [M] /media/disk/kernel-417d87e57364/dir-item.o
CC [M] /media/disk/kernel-417d87e57364/hash.o
CC [M] /media/disk/kernel-417d87e57364/file-item.o
CC [M] /media/disk/kernel-417d87e57364/inode-item.o
CC [M] /media/disk/kernel-417d87e57364/inode-map.o
CC [M] /media/disk/kernel-417d87e57364/disk-io.o
CC [M] /media/disk/kernel-417d87e57364/transaction.o
CC [M] /media/disk/kernel-417d87e57364/bit-radix.o
CC [M] /media/disk/kernel-417d87e57364/inode.o
CC [M] /media/disk/kernel-417d87e57364/file.o
CC [M] /media/disk/kernel-417d87e57364/tree-defrag.o
CC [M] /media/disk/kernel-417d87e57364/extent_map.o
CC [M] /media/disk/kernel-417d87e57364/sysfs.o
CC [M] /media/disk/kernel-417d87e57364/struct-funcs.o
CC [M] /media/disk/kernel-417d87e57364/xattr.o
CC [M] /media/disk/kernel-417d87e57364/ordered-data.o
CC [M] /media/disk/kernel-417d87e57364/extent_io.o
/media/disk/kernel-417d87e57364/extent_io.c: In function 'extent_readpages':
/media/disk/kernel-417d87e57364/extent_io.c:2270: error: implicit declaration of function '__pagevec_lru_add'
make[2]: *** [/media/disk/kernel-417d87e57364/extent_io.o] Error 1
make[1]: *** [_module_/media/disk/kernel-417d87e57364] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.28-rc2'
make: *** [all] Error 2
tarkane@tarkane:/media/disk/kernel-417d87e57364$
#1 lore raw

hello,
try this.

fs/btrfs/extent_io.c +4 -0
index 9b37ce6..eb01341 100644
@@ -2539,7 +2539,11 @@ int extent_readpages(struct extent_io_tree *tree,
                        /* open coding of lru_cache_add, also not exported */
                        page_cache_get(page);
                        if (!pagevec_add(&pvec, page))
+                       #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)
+                               ____pagevec_lru_add(&pvec);
+                       #else
                                __pagevec_lru_add(&pvec);
+                       #endif
                        __extent_read_full_page(tree, page, get_extent,
                                                &bio, 0, &bio_flags);
                }

2008/11/3 Tarkan Erimer <[email protected]>:

Quoted 48 lines

Hi,

I use Kubuntu-8.10 with custom kernel 2.6.28-rc2 and my gcc version is "gcc (Ubuntu 4.3.2-1ubuntu11) 4.3.2". When I tried to compile latest btrfs source, I got these error messages :

tarkane@tarkane:/media/disk/kernel-417d87e57364$ make
bash version.sh
make -C /lib/modules/`uname -r`/build M=`pwd` modules
make[1]: Entering directory `/usr/src/linux-2.6.28-rc2'
CC [M] /media/disk/kernel-417d87e57364/super.o
CC [M] /media/disk/kernel-417d87e57364/ctree.o
CC [M] /media/disk/kernel-417d87e57364/extent-tree.o
CC [M] /media/disk/kernel-417d87e57364/print-tree.o
CC [M] /media/disk/kernel-417d87e57364/root-tree.o
CC [M] /media/disk/kernel-417d87e57364/dir-item.o
CC [M] /media/disk/kernel-417d87e57364/hash.o
CC [M] /media/disk/kernel-417d87e57364/file-item.o
CC [M] /media/disk/kernel-417d87e57364/inode-item.o
CC [M] /media/disk/kernel-417d87e57364/inode-map.o
CC [M] /media/disk/kernel-417d87e57364/disk-io.o
CC [M] /media/disk/kernel-417d87e57364/transaction.o
CC [M] /media/disk/kernel-417d87e57364/bit-radix.o
CC [M] /media/disk/kernel-417d87e57364/inode.o
CC [M] /media/disk/kernel-417d87e57364/file.o
CC [M] /media/disk/kernel-417d87e57364/tree-defrag.o
CC [M] /media/disk/kernel-417d87e57364/extent_map.o
CC [M] /media/disk/kernel-417d87e57364/sysfs.o
CC [M] /media/disk/kernel-417d87e57364/struct-funcs.o
CC [M] /media/disk/kernel-417d87e57364/xattr.o
CC [M] /media/disk/kernel-417d87e57364/ordered-data.o
CC [M] /media/disk/kernel-417d87e57364/extent_io.o
/media/disk/kernel-417d87e57364/extent_io.c: In function 'extent_readpages':
/media/disk/kernel-417d87e57364/extent_io.c:2270: error: implicit
declaration of function '__pagevec_lru_add'
make[2]: *** [/media/disk/kernel-417d87e57364/extent_io.o] Error 1
make[1]: *** [_module_/media/disk/kernel-417d87e57364] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.28-rc2'
make: *** [all] Error 2
tarkane@tarkane:/media/disk/kernel-417d87e57364$

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

Signature · 1 line
Zhu Yanhai
#2 lore raw

Hi Yanhai,

Thank you very much for the help and the patch. But; unfortunately, it=20 didn't work ;-(
I got the following errors :

tarkane@tarkane:~/btrfs/kernel-417d87e57364$ make
bash version.sh
make -C /lib/modules/`uname -r`/build M=3D`pwd` modules
make[1]: Entering directory `/usr/src/linux-2.6.28-rc3'
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/super.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/ctree.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/extent-tree.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/print-tree.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/root-tree.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/dir-item.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/hash.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/file-item.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/inode-item.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/inode-map.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/disk-io.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/transaction.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/bit-radix.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/inode.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/file.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/tree-defrag.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/extent_map.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/sysfs.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/struct-funcs.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/xattr.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/ordered-data.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/extent_io.o
/home/tarkane/btrfs/kernel-417d87e57364/extent_io.c: In function=20
=91extent_readpages=92:
/home/tarkane/btrfs/kernel-417d87e57364/extent_io.c:2271: error: too fe=
w=20
arguments to function =91____pagevec_lru_add=92
/home/tarkane/btrfs/kernel-417d87e57364/extent_io.c:2276: error:=20
=91bio_flags=92 undeclared (first use in this function)
/home/tarkane/btrfs/kernel-417d87e57364/extent_io.c:2276: error: (Each=20
undeclared identifier is reported only once
/home/tarkane/btrfs/kernel-417d87e57364/extent_io.c:2276: error: for=20
each function it appears in.)
/home/tarkane/btrfs/kernel-417d87e57364/extent_io.c:2276: error: too=20
many arguments to function =91__extent_read_full_page=92
/home/tarkane/btrfs/kernel-417d87e57364/extent_io.c:2281: error:=20
implicit declaration of function =91__pagevec_lru_add=92
make[2]: *** [/home/tarkane/btrfs/kernel-417d87e57364/extent_io.o] Erro=
r 1
make[1]: *** [_module_/home/tarkane/btrfs/kernel-417d87e57364] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.28-rc3'
make: *** [all] Error 2
tarkane@tarkane:~/btrfs/kernel-417d87e57364$

fs/btrfs/extent_io.c int extent_readpages(struct extent_io_tree *tr=

Quoted 8 lines · yanhai zhu

hello,
try this.

fs/btrfs/extent_io.c +0 -0
index 9b37ce6..eb01341 100644
@@ -2539,7 +2539,11 @@ int extent_readpages(struct extent_io_tree *tr=

ee,

fs/btrfs/extent_io.c int extent_readpages(struct extent_io_tree *tr= · line 2539

Quoted 1 line
fs/btrfs/extent_io.c +0 -0
                        /* open coding of lru_cache_add, also not exp=

orted */

fs/btrfs/extent_io.c int extent_readpages(struct extent_io_tree *tree,

Quoted 3 lines
fs/btrfs/extent_io.c +1 -0
                        page_cache_get(page);
                        if (!pagevec_add(&pvec, page))
+                       #if LINUX_VERSION_CODE >=3D KERNEL_VERSION(2,=

6,28)

fs/btrfs/extent_io.c int extent_readpages(struct extent_io_tree *tree,

Quoted 5 lines
fs/btrfs/extent_io.c +3 -0
+                               ____pagevec_lru_add(&pvec);
+                       #else
                                __pagevec_lru_add(&pvec);
+                       #endif
                        __extent_read_full_page(tree, page, get_exten=

t,

Quoted 8 lines
fs/btrfs/extent_io.c +0 -0
                                                &bio, 0, &bio_flags);
                }

2008/11/3 Tarkan Erimer <[email protected]>:
=20

Quoted 3 lines

Hi,

I use Kubuntu-8.10 with custom kernel 2.6.28-rc2 and my gcc version =

is "gcc

Quoted 1 line
Quoted 1 line

(Ubuntu 4.3.2-1ubuntu11) 4.3.2". When I tried to compile latest btrf=

s

Quoted 21 lines
Quoted 21 lines

source, I got these error messages :

tarkane@tarkane:/media/disk/kernel-417d87e57364$ make
bash version.sh
make -C /lib/modules/`uname -r`/build M=3D`pwd` modules
make[1]: Entering directory `/usr/src/linux-2.6.28-rc2'
CC [M] /media/disk/kernel-417d87e57364/super.o
CC [M] /media/disk/kernel-417d87e57364/ctree.o
CC [M] /media/disk/kernel-417d87e57364/extent-tree.o
CC [M] /media/disk/kernel-417d87e57364/print-tree.o
CC [M] /media/disk/kernel-417d87e57364/root-tree.o
CC [M] /media/disk/kernel-417d87e57364/dir-item.o
CC [M] /media/disk/kernel-417d87e57364/hash.o
CC [M] /media/disk/kernel-417d87e57364/file-item.o
CC [M] /media/disk/kernel-417d87e57364/inode-item.o
CC [M] /media/disk/kernel-417d87e57364/inode-map.o
CC [M] /media/disk/kernel-417d87e57364/disk-io.o
CC [M] /media/disk/kernel-417d87e57364/transaction.o
CC [M] /media/disk/kernel-417d87e57364/bit-radix.o
CC [M] /media/disk/kernel-417d87e57364/inode.o
CC [M] /media/disk/kernel-417d87e57364/file.o
Quoted 8 lines
Quoted 8 lines

CC [M] /media/disk/kernel-417d87e57364/tree-defrag.o
CC [M] /media/disk/kernel-417d87e57364/extent_map.o
CC [M] /media/disk/kernel-417d87e57364/sysfs.o
CC [M] /media/disk/kernel-417d87e57364/struct-funcs.o
CC [M] /media/disk/kernel-417d87e57364/xattr.o
CC [M] /media/disk/kernel-417d87e57364/ordered-data.o
CC [M] /media/disk/kernel-417d87e57364/extent_io.o /media/disk/kernel-417d87e57364/extent_io.c: In function 'extent_rea=

dpages':

Quoted 10 lines
Quoted 10 lines

/media/disk/kernel-417d87e57364/extent_io.c:2270: error: implicit declaration of function '__pagevec_lru_add'
make[2]: *** [/media/disk/kernel-417d87e57364/extent_io.o] Error 1 make[1]: *** [_module_/media/disk/kernel-417d87e57364] Error 2 make[1]: Leaving directory `/usr/src/linux-2.6.28-rc2'
make: *** [all] Error 2 tarkane@tarkane:/media/disk/kernel-417d87e57364$

Quoted 2 lines
Quoted 2 lines

--
To unsubscribe from this list: send the line "unsubscribe linux-btrf=

s" in

Quoted 8 lines
Quoted 4 lines

the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

   =20

=20

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" = in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#3 lore raw

sorry,

--

fs/btrfs/extent_io.c +4 -0
index 9b37ce6..04a0e58 100644
@@ -2539,7 +2539,11 @@ int extent_readpages(struct extent_io_tree *tree,
                        /* open coding of lru_cache_add, also not exported */
                        page_cache_get(page);
                        if (!pagevec_add(&pvec, page))
+                       #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)
+                               __pagevec_lru_add_file(&pvec);
+                       #else
                                __pagevec_lru_add(&pvec);
+                       #endif
                        __extent_read_full_page(tree, page, get_extent,
                                                &bio, 0, &bio_flags);
                }

2008/11/3 Tarkan Erimer <[email protected]>:

Quoted 137 lines

Hi Yanhai,

Thank you very much for the help and the patch. But; unfortunately, it didn't work ;-(
I got the following errors :

tarkane@tarkane:~/btrfs/kernel-417d87e57364$ make
bash version.sh
make -C /lib/modules/`uname -r`/build M=`pwd` modules
make[1]: Entering directory `/usr/src/linux-2.6.28-rc3'
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/super.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/ctree.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/extent-tree.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/print-tree.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/root-tree.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/dir-item.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/hash.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/file-item.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/inode-item.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/inode-map.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/disk-io.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/transaction.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/bit-radix.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/inode.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/file.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/tree-defrag.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/extent_map.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/sysfs.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/struct-funcs.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/xattr.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/ordered-data.o
CC [M] /home/tarkane/btrfs/kernel-417d87e57364/extent_io.o
/home/tarkane/btrfs/kernel-417d87e57364/extent_io.c: In function
'extent_readpages':
/home/tarkane/btrfs/kernel-417d87e57364/extent_io.c:2271: error: too few
arguments to function '____pagevec_lru_add'
/home/tarkane/btrfs/kernel-417d87e57364/extent_io.c:2276: error: 'bio_flags'
undeclared (first use in this function)
/home/tarkane/btrfs/kernel-417d87e57364/extent_io.c:2276: error: (Each
undeclared identifier is reported only once
/home/tarkane/btrfs/kernel-417d87e57364/extent_io.c:2276: error: for each
function it appears in.)
/home/tarkane/btrfs/kernel-417d87e57364/extent_io.c:2276: error: too many
arguments to function '__extent_read_full_page'
/home/tarkane/btrfs/kernel-417d87e57364/extent_io.c:2281: error: implicit
declaration of function '__pagevec_lru_add'
make[2]: *** [/home/tarkane/btrfs/kernel-417d87e57364/extent_io.o] Error 1
make[1]: *** [_module_/home/tarkane/btrfs/kernel-417d87e57364] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.28-rc3'
make: *** [all] Error 2
tarkane@tarkane:~/btrfs/kernel-417d87e57364$
Quoted 80 lines · yanhai zhu

hello,
try this.

fs/btrfs/extent_io.c +4 -0
index 9b37ce6..eb01341 100644
@@ -2539,7 +2539,11 @@ int extent_readpages(struct extent_io_tree *tree,
                       /* open coding of lru_cache_add, also not exported
 */
                       page_cache_get(page);
                       if (!pagevec_add(&pvec, page))
+                       #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)
+                               ____pagevec_lru_add(&pvec);
+                       #else
                               __pagevec_lru_add(&pvec);
+                       #endif
                       __extent_read_full_page(tree, page, get_extent,
                                               &bio, 0, &bio_flags);
               }

2008/11/3 Tarkan Erimer <[email protected]>:

Quoted 52 lines

Hi,

I use Kubuntu-8.10 with custom kernel 2.6.28-rc2 and my gcc version is "gcc
(Ubuntu 4.3.2-1ubuntu11) 4.3.2". When I tried to compile latest btrfs source, I got these error messages :

tarkane@tarkane:/media/disk/kernel-417d87e57364$ make
bash version.sh
make -C /lib/modules/`uname -r`/build M=`pwd` modules
make[1]: Entering directory `/usr/src/linux-2.6.28-rc2'
CC [M] /media/disk/kernel-417d87e57364/super.o
CC [M] /media/disk/kernel-417d87e57364/ctree.o
CC [M] /media/disk/kernel-417d87e57364/extent-tree.o
CC [M] /media/disk/kernel-417d87e57364/print-tree.o
CC [M] /media/disk/kernel-417d87e57364/root-tree.o
CC [M] /media/disk/kernel-417d87e57364/dir-item.o
CC [M] /media/disk/kernel-417d87e57364/hash.o
CC [M] /media/disk/kernel-417d87e57364/file-item.o
CC [M] /media/disk/kernel-417d87e57364/inode-item.o
CC [M] /media/disk/kernel-417d87e57364/inode-map.o
CC [M] /media/disk/kernel-417d87e57364/disk-io.o
CC [M] /media/disk/kernel-417d87e57364/transaction.o
CC [M] /media/disk/kernel-417d87e57364/bit-radix.o
CC [M] /media/disk/kernel-417d87e57364/inode.o
CC [M] /media/disk/kernel-417d87e57364/file.o
CC [M] /media/disk/kernel-417d87e57364/tree-defrag.o
CC [M] /media/disk/kernel-417d87e57364/extent_map.o
CC [M] /media/disk/kernel-417d87e57364/sysfs.o
CC [M] /media/disk/kernel-417d87e57364/struct-funcs.o
CC [M] /media/disk/kernel-417d87e57364/xattr.o
CC [M] /media/disk/kernel-417d87e57364/ordered-data.o
CC [M] /media/disk/kernel-417d87e57364/extent_io.o
/media/disk/kernel-417d87e57364/extent_io.c: In function
'extent_readpages':
/media/disk/kernel-417d87e57364/extent_io.c:2270: error: implicit
declaration of function '__pagevec_lru_add'
make[2]: *** [/media/disk/kernel-417d87e57364/extent_io.o] Error 1
make[1]: *** [_module_/media/disk/kernel-417d87e57364] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.28-rc2'
make: *** [all] Error 2
tarkane@tarkane:/media/disk/kernel-417d87e57364$

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

Signature · 1 line
Zhu Yanhai
#4 lore raw
Quoted 9 lines · yanhai zhu

sorry,

--

fs/btrfs/extent_io.c +0 -0
index 9b37ce6..04a0e58 100644

fs/btrfs/extent_io.c int extent_readpages(struct extent_io_tree *tree, · line 2547

Quoted 9 lines
fs/btrfs/extent_io.c +4 -0
@@ -2539,7 +2539,11 @@ int extent_readpages(struct extent_io_tree *tree,
                        /* open coding of lru_cache_add, also not exported */
                        page_cache_get(page);
                        if (!pagevec_add(&pvec, page))
+                       #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)
+                               __pagevec_lru_add_file(&pvec);
+                       #else
                                __pagevec_lru_add(&pvec);
+                       #endif
 

Suggest sticking in some compat header:

+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28)
+# define __pagevec_lru_add_file __pagevec_lru_add
+#endif

To reduce impact on code that is intended to go to mainline.

Signature · 2 lines
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.