[Unionfs] bug on rhel4
Erez Zadok
ezk at cs.sunysb.edu
Wed Sep 19 23:46:21 EDT 2007
In message <365C0ECB-7F18-4348-BB7E-988632C455EE at dugeo.com>, Stuart Midgley writes:
> Evening
>
> I have been trying to get unionfs 2.1.3 (and previously 2.1.2)
> working on a lustre rhel4 kernel
>
> 2.6.9-42.0.10.EL_lustre-1.4.10.1smp
>
> The patch to fs/Makefile failed to apply, but was easily applied by
> hand. There was also an issue with compat.h with the redefinition of
> atomic_inc_return which I found defined elsewhere in the kernel
> source tree. The simple solution was
>
> #if 0
> static inline int atomic_inc_return(atomic_t *v)
> {
> atomic_inc(v);
> return atomic_read(v);
> }
> #endif
>
> So the kernel module now builds perfectly. However, when I try to
> insert the module I get
>
> linux-2.6.9-42.0.10.EL_lustre-1.4.10.1/fs/unionfs # insmod unionfs.ko
> insmod: error inserting 'unionfs.ko': -1 Unknown symbol in module
>
> and dmesg is showing
>
> unionfs: Unknown symbol fsstack_copy_inode_size
>
> Now, I am really confused. fsstack_copy_inode_size is in fs/stack.c
>
> void fsstack_copy_inode_size(struct inode *dst, const struct inode *src)
> {
> i_size_write(dst, i_size_read((struct inode *)src));
> dst->i_blocks = src->i_blocks;
> }
> EXPORT_SYMBOL_GPL(fsstack_copy_inode_size);
>
> and should be in the kernel??? I would have thought the compile
> would fail if it wasn't present? Of course, the kernel I'm running
> (binary from a CFS supplied rpm) may not have this symbol...
>
> Ideas?
> Stu.
Stu, make sure that fs/stack.c gets compiled, and that it gets linked into
fs/libfs.a. Your fs/Makefile should list stack.o in obj-y. I suspect that
your hand-patching of fs/Makefile missed the latter.
And, when in doubt, make clean and recompile your kernel from scratch.
Erez.
More information about the unionfs
mailing list