I'm in the process of converting the RPMs Novell provides for their linux client to debs for installation on Ubuntu 8.04.1 systems for a school that already uses Novell on windows boxes. I've been using alien to convert the packages to deb files, then unpacking the debs and tweaking paths and scripts. I should note that I've never really poked around in the kernel before, or in kernel modules, but I've been doing a fair bit of reading on the workings of the VFS.
This was going fine until I tried compiling the kernel modules for novfs -- after editing the mk_novfs script, the compile process starts, but quits early. The setattr function (which is passed dentry and iattr structures) tries accessing the non-existent ia_file field of the iattr structure in the following line:
retVal = Novfs_Truncate_File_Ex(attr->ia_file->private_data, attr->ia_size, session);
where attr is a pointer to a struct inode. I've done lots of Googling since I encountered this last week, and couldn't find much on the deprecated ia_file field, but I'm guessing it's supposed to point to a file structure -- if this is the case, it makes sense to have removed it since inodes aren't always associated with files.
After poking around in the source, it looks like the private_data field of the file contains some sort of file handle data (not exactly sure what though, I wasn't able to find the definition of the type).
I can provide more files if you want, but if you want to download the package I'm working from it's the novell-novfs one from the Novell Linux Client download. My question is, does this look like a problem that would take an experienced kernel hacker to fix, or is there a simpler workaround? I'm also kind of curious as to why the latest version of the client would use a deprecated field -- does SuSe use an old kernel?
One last thing: I am aware of the other, non-official, buggy novell tools, so if you're just replying to tell me to use that, don't bother. I realize that this might be a difficult problem, and even that it might not be possible for someone with my level of experience to fix, but if anyone has any suggestions, I look forward to diving deeper
Thanks for any and all help,