[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Kernel 2.6.34



Hello Max,

On Wed, May 19, 2010 at 08:24:07AM -0700, stirner wrote:
> 
> Kernel 2.6.34 is out, no problem with aufs2 but cloop doesn't compile:
> 
> make[1]: Entering directory `/usr/src/linux-2.6.34'
>   CC [M]  /usr/src/cloop-2.631/compressed_loop.o
> /usr/src/cloop-2.631/compressed_loop.c: In function 'cloop_set_file':
> /usr/src/cloop-2.631/compressed_loop.c:439: error: implicit declaration of
> function 'blk_queue_max_sectors'
> /usr/src/cloop-2.631/compressed_loop.c:440: error: implicit declaration of
> function 'blk_queue_max_phys_segments'
> /usr/src/cloop-2.631/compressed_loop.c:440: error: implicit declaration of
> function 'queue_max_phys_segments'
> /usr/src/cloop-2.631/compressed_loop.c:441: error: implicit declaration of
> function 'blk_queue_max_hw_segments'
> /usr/src/cloop-2.631/compressed_loop.c:441: error: implicit declaration of
> function 'queue_max_hw_segments'
> make[2]: *** [/usr/src/cloop-2.631/compressed_loop.o] Error 1
> make[1]: *** [_module_/usr/src/cloop-2.631] Error 2
> make[1]: Leaving directory `/usr/src/linux-2.6.34'
> make: *** [cloop.ko] Error 2
> 
> We need the man that can fix this ;-)
> 
> Cheers
> 
> Max

It seems that some of the Linux block layer functions have been renamed
or removed in 2.6.34. The following patch allows me to compile and use
the cloop module again, successfully tested with both files and block
devices as input source, so I guess that what I did was correct. :-)

Regards
-Klaus
--- cloop-2.631/compressed_loop.c	2009-09-22 16:49:56.000000000 +0200
+++ cloop-2.634/compressed_loop.c	2010-05-26 01:29:28.000000000 +0200
@@ -20,7 +20,7 @@
  */
 
 #define CLOOP_NAME "cloop"
-#define CLOOP_VERSION "2.631"
+#define CLOOP_VERSION "2.634"
 #define CLOOP_MAX 8
 
 #ifndef KBUILD_MODNAME
@@ -436,9 +436,9 @@
  if(isblkdev)
   {
    struct request_queue *q = bdev_get_queue(inode->i_bdev);
-   blk_queue_max_sectors(clo->clo_queue, queue_max_sectors(q));
-   blk_queue_max_phys_segments(clo->clo_queue, queue_max_phys_segments(q));
-   blk_queue_max_hw_segments(clo->clo_queue, queue_max_hw_segments(q));
+   blk_queue_max_hw_sectors(clo->clo_queue, queue_max_hw_sectors(q)); /* Renamed in 2.6.34 */
+   blk_queue_max_segments(clo->clo_queue, queue_max_segments(q)); /* Renamed in 2.6.34 */
+   /* blk_queue_max_hw_segments(clo->clo_queue, queue_max_hw_segments(q)); */ /* Removed in 2.6.34 */
    blk_queue_max_segment_size(clo->clo_queue, queue_max_segment_size(q));
    blk_queue_segment_boundary(clo->clo_queue, queue_segment_boundary(q));
    blk_queue_merge_bvec(clo->clo_queue, q->merge_bvec_fn);

Reply to: