Skip to contentSkip to conversation

Unresolved generic_file_write_nolock

DISCUSSION Robert 1 participant 2 messages Jul 26, 2006 – Jul 27, 2006

lore
Share & tools
lore

Robert

author
#0 lore raw

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

author
#1 lore raw

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_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