Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.
Well, I found the reason behind my error. The mm3 kernel patches redefine kmem_cache_destroy as void. I patched the drbd_destroy_mempools function in drbd_main.c as follows. Please let me know if this is sane. void drbd_destroy_mempools(void) { if (drbd_request_mempool) mempool_destroy(drbd_request_mempool); if (drbd_ee_cache) kmem_cache_destroy(drbd_ee_cache); /* Above code changed from the following function for compatibility / with mm3 patches to kernel 2.6.18: / / if (drbd_ee_cache) && kmem_cache_destroy(drbd_ee_cache)) / printk(KERN_ERR DEVICE_NAME / ": kmem_cache_destroy(drbd_ee_cache) FAILED\n"); */ if (drbd_request_cache) kmem_cache_destroy(drbd_request_cache); /* Above code changed from the following function for compatability / with the mm3 patches to kernel 2.6.18: / / if (drbd_request_cache && kmem_cache_destroy(drbd_request_cache)) / printk(KERN_ERR DEVICE_NAME */ // FIXME what can we do if we fail to destroy them? drbd_request_mempool = NULL; drbd_ee_cache = NULL; drbd_request_cache = NULL; return; } The code in the MM patches that redefines kmem_cache_destroy as void has this to say: "There is very little, say, filesystem driver code can do upon failed kmem_cache_destroy(). If it will be decided to BUG in this case, BUG should be put in generic code, instead." Thanks, Brent Davidson Brent Davidson wrote: > I'm having a problme compiling drbd version 0.7.22 under Centos 4.4 x86_64 > using an updated kernel. Kernel source for 2.6.18 was retrieved from > kernel.org, mm3 patches were replied. Local kernel version is > 2.6.18-mm3.x86_64.smp > > I am getting an error in drbd_main.c. I get the same error with source > retrived from svn and from Tarball. > > Here's the output of my build attempt: > > [root at localhost drbd]# make clean all > rm -rf .tmp_versions > rm -f *.[oas] *.ko .*.cmd .*.d .*.tmp *.mod.c .*.flags .depend .kernel* > > Calling toplevel makefile of kernel source tree, which I believe is in > KDIR=/lib/modules/2.6.18-mm3.x86_64.smp/build > > test -f ../scripts/adjust_drbd_config_h.sh && \ > KDIR=/lib/modules/2.6.18-mm3.x86_64.smp/build /bin/sh > ../scripts/adjust_drbd_config_h.sh > > Using unmodified drbd_config.h > > make -C /lib/modules/2.6.18-mm3.x86_64.smp/build > SUBDIRS=/root/drbd/drbd-0.7.22/drbd modules > make[1]: Entering directory `/usr/src/linux-2.6.18' > CC [M] /root/drbd/drbd-0.7.22/drbd/drbd_sizeof_sanity_check.o > CC [M] /root/drbd/drbd-0.7.22/drbd/drbd_buildtag.o > CC [M] /root/drbd/drbd-0.7.22/drbd/drbd_bitmap.o > CC [M] /root/drbd/drbd-0.7.22/drbd/drbd_fs.o > CC [M] /root/drbd/drbd-0.7.22/drbd/drbd_proc.o > CC [M] /root/drbd/drbd-0.7.22/drbd/drbd_worker.o > CC [M] /root/drbd/drbd-0.7.22/drbd/drbd_receiver.o > /root/drbd/drbd-0.7.22/drbd/drbd_receiver.c: In function `drbd_asender': > /root/drbd/drbd-0.7.22/drbd/drbd_receiver.c:2315: warning: unused variable > `empty' > CC [M] /root/drbd/drbd-0.7.22/drbd/drbd_req.o > CC [M] /root/drbd/drbd-0.7.22/drbd/drbd_actlog.o > CC [M] /root/drbd/drbd-0.7.22/drbd/lru_cache.o > CC [M] /root/drbd/drbd-0.7.22/drbd/drbd_main.o > /root/drbd/drbd-0.7.22/drbd/drbd_main.c: In function `drbd_destroy_mempools': > /root/drbd/drbd-0.7.22/drbd/drbd_main.c:1630: error: void value not > ignored as it ought to be > /root/drbd/drbd-0.7.22/drbd/drbd_main.c:1633: error: void value not > ignored as it ought to be > make[2]: *** [/root/drbd/drbd-0.7.22/drbd/drbd_main.o] Error 1 > make[1]: *** [_module_/root/drbd/drbd-0.7.22/drbd] Error 2 > make[1]: Leaving directory `/usr/src/linux-2.6.18' > make: *** [kbuild] Error 2 > [root at localhost drbd]# > > Thanks, > Brent Davidson > > _______________________________________________ > drbd-user mailing list > drbd-user at lists.linbit.com > http://lists.linbit.com/mailman/listinfo/drbd-user > > > -- Brent Davidson Texas Country Title Company P.O. Box 663 Cameron, TX 76520 254-605-0140 ex. 21