I finally made some time to upgrade coda from 6.0.11 to 6.0.12 and the kernel module from 6.1 to 6.2.
I'm building the 6.2 version of the coda module against a Redhat AS3
kernel (a patched 2.4.21 kernel). upcall.c has some new functions:
block_signals and unblock_signals. These make use of
¤t->sigmask_lock. For some reason that I can't make out, redhat
has patched sigmask_lock out of the kernel. It is replaced with
sighand->siglock. Patching upcall.c to change each occurrence got me to
the next stumbling block.
upcall.c:672: structure has no member named `uc_posttime'
This line refers to the upc_req structure, which doesn't have
uc_posttime.
It seemed to me (and please check me on this) that uc_posttime was only
ever used in a debug function. So I deleted all references to it. And
that got me to the next problem.
upcall.c: In function `block_signals':
upcall.c:642: too many arguments to function
`recalc_sigpending_Rfb6af58d'
upcall.c: In function `unblock_signals':
upcall.c:650: too many arguments to function
`recalc_sigpending_Rfb6af58d'
upcall.c: In function `coda_upcall':
upcall.c:791: too many arguments to function `coda_waitfor_upcall'
To fix the second error I changed this line:
runtime = coda_waitfor_upcall(req, vcommp);
to
runtime = coda_waitfor_upcall(req);
but since I don't understand what it was meant to do, I'm very worried
that I might have broken something.
Finally, it appears that recalc_sigpending doesn't take an argument (I
guess it assumes ¤t). I don't know if this is redhat specific or
not.
I've attached the patch file that I needed to get everything to build.
I've also attached the spec file I used to create an rpm. I haven't
installed or tested the rpm yet pending word on the my patches.
And updating the rest of coda is going to have to wait a little bit
now...
Thanks,
--
Patrick Walsh
eSoft Incorporated
303.444.1600 x3350
http://www.esoft.com/
signature.asc
Description: This is a digitally signed message part
