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 majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
hello, try this. diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index 9b37ce6..eb01341 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c @@ -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 <tarkan.erimer@turknet.net.tr>:> 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 majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >-- Zhu Yanhai -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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$ yanhai zhu wrote:> hello, > try this. > > diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c > index 9b37ce6..eb01341 100644 > --- a/fs/btrfs/extent_io.c > +++ b/fs/btrfs/extent_io.c > @@ -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 <tarkan.erimer@turknet.net.tr>: > >> 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 majordomo@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html >> >> > > > >-- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
sorry, -- diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index 9b37ce6..04a0e58 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c @@ -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 <tarkan.erimer@turknet.net.tr>:> 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$ > > > > yanhai zhu wrote: >> >> hello, >> try this. >> >> diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c >> index 9b37ce6..eb01341 100644 >> --- a/fs/btrfs/extent_io.c >> +++ b/fs/btrfs/extent_io.c >> @@ -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 <tarkan.erimer@turknet.net.tr>: >> >>> >>> 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 majordomo@vger.kernel.org >>> More majordomo info at http://vger.kernel.org/majordomo-info.html >>> >>> >> >> >> >> > >-- Zhu Yanhai -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
yanhai zhu wrote:> sorry, > > -- > > diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c > index 9b37ce6..04a0e58 100644 > --- a/fs/btrfs/extent_io.c > +++ b/fs/btrfs/extent_io.c > @@ -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. -- I have a truly marvellous patch that fixes the bug which this signature is too narrow to contain. -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html