Unresolved generic_file_write_nolock
Hi XFS guys
I like to use XFS but I have a compile question for
xfs-modules-fs-modules-1.3.3-2.4.21-27.0.2.EL.sgi9.src.rpm
which is download from ftp://oss.sgi/com/projects/xfs/testing/RHEL3/
I compiled it with kernel-2.4.21-37.EL with normal steps. Everything
is ok and then I run the command installkernel but got below error message like this:
depmod ..... xfs.o
Unresolved symble : generic_file_write_nolock
Then I had tried to find this function in 2.4.21-37EL and mainstream kernel-2.4.32, but it does not exist in them. I refer to SPEC file and found this generic_file_write_nolock() already deleted at linux-2.4.21-odirect.patch, no more exist. Even in the old kernel 2.4.21-20.EL, I can not find it.
This generic_file_write_nolock() is used in xfs/linux/xfs_lrw.c line 745
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2.4.22) || defined\ (KERNEL_HAS_NEW_O_DIRECT)
:
:
:
#else
retry :
if (ioflags & IO_ISDIRECT) {
xfs_inval_cached_pages(vp, io, *offset, 1, 1);
}
ret = generic_file_write_nolock(file, buf, size, offset);#endif
Logically, the #if KERNEL_VERSION_CODE is smaller than 2.4.22. The generic_file_write_nolock should be included by C preprocessor. So, could you guys tell me why the uploaded RPM:
xfs-modules-smp-1.3.3-2.4.21_27.0.2.EL.sgi9_sgi2.i686.rpm
does not included this function, generic_file_write_nolock?
and Did you compile the xfs-modules with the same kernel 2.4.21-27.0.2.EL.sgi9_sgi2?
I can not find generic_file_write_nolock in the System.map of the its uploaded RPM :
kernel-smp-2.4.21-27.0.2.EL.sgi9.i686.rpm
This issue take my time for about 1 week and still not solved. Any comment is thankfully.
Best Regards
Robert
Hi
I had solved this problem. I will describe in this email.
At frist, the error message for this issue is as below:
Loading xfs.o module/lib/xfs.o : unresolved symbol generic_file_write_nolock ERROR : /bin/insmod exited abnormally
creating block devices
mounting root filesystem
mount : error 19 mounting xfs
.........
I changed all
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2.4.22) || defined\
(KERNEL_HAS_NEW_O_DIRECT)
in fs/xfs/linux/xfs_lrw.c to
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2.4.21) || defined\
(KERNEL_HAS_NEW_O_DIRECT)
and rebuild, install kernel. Everything goes well now.
Please comment.
Thank you
Robert
Quoted 57 lines · Robert
Hi XFS guys
I like to use XFS but I have a compile question for
xfs-modules-fs-modules-1.3.3-2.4.21-27.0.2.EL.sgi9.src.rpm
which is download from ftp://oss.sgi/com/projects/xfs/testing/RHEL3/
I compiled it with kernel-2.4.21-37.EL with normal steps. Everything
is ok and then I run the command installkernel but got below error message like this:depmod ..... xfs.o
Unresolved symble :generic_file_write_nolockThen I had tried to find this function in 2.4.21-37EL and mainstream kernel-2.4.32, but it does not exist in them. I refer to SPEC file and found this
generic_file_write_nolock()already deleted at linux-2.4.21-odirect.patch, no more exist. Even in the old kernel 2.4.21-20.EL, I can not find it.This
generic_file_write_nolock()is used inxfs/linux/xfs_lrw.cline 745#if LINUX_VERSION_CODE >= KERNEL_VERSION(2.4.22) || defined\ (KERNEL_HAS_NEW_O_DIRECT) : : : #else retry : if (ioflags & IO_ISDIRECT) { xfs_inval_cached_pages(vp, io, *offset, 1, 1); } ret = generic_file_write_nolock(file, buf, size, offset);#endif
Logically, the #if
KERNEL_VERSION_CODEis smaller than 2.4.22. Thegeneric_file_write_nolockshould be included by C preprocessor. So, could you guys tell me why the uploaded RPM:xfs-modules-smp-1.3.3-2.4.21_27.0.2.EL.sgi9_sgi2.i686.rpm
does not included this function,
generic_file_write_nolock?and Did you compile the xfs-modules with the same kernel 2.4.21-27.0.2.EL.sgi9_sgi2?
I can not find
generic_file_write_nolockin the System.map of the its uploaded RPM :kernel-smp-2.4.21-27.0.2.EL.sgi9.i686.rpm
This issue take my time for about 1 week and still not solved. Any comment is thankfully.
Best Regards
Robert