Re: File locking problem with knfsd and IRIX

Ben 'The Con Man' Kahn (xkahn@cybersites.com)
Mon, 9 Nov 1998 18:39:40 -0500 (EST)


On Mon, 9 Nov 1998, Olaf Kirch wrote:

> On Mon, 09 Nov 1998 11:28:33 EST, "Ben 'The Con Man' Kahn" wrote:
> > | Let me clarify some things. Nfs v2 does not support lockd/statd, i.e.
> > | file locking, as far as I know, only nfs v3 does.
>
> If this is what you get back from irix support I just hope you didn't
> have to pay for it.

Heh. That was my thought exactly when I read that. Supposedly
this was from an SGI engineer too. :^)

> Well, the limitation of lockd to 4byte cookies was just that it was
> so simple to do, and I'd never seen a NLM implementation that didn't
> do 4byte cookies. Technically, a cookie can be 1024 bytes long because
> it's a netobj :(
>
> The changes needed to be made are reasonably trivial, but not entirely.
> In lockd/xdr.h, you need to change nlm_args.cookie to look like this:
>
> struct nlm_args {
> ...
> struct nlm_cookie {
> unsigned char data[8]; /* normal NLM and irix */
> unsigned int len;
> } cookie;
> ...
> };
>
> Obviously the decode and encode routines need to be changed to handle
> up to 8byte cookies gracefully.
>
> The part where you've got to be careful is that for every NLM request,
> the corresponding response must have the same cookie. That's because
> Sun grafted their call/response NLM on their braindead ONC RPC
> implementation.
>
> So basically you've got to check the places where cookie gets copied
> to make sure we really copy the struct.

But wait a minute. I noticed places in the code which checks for
special cases like HP-UX. Now we'll have a new special case for 4byte
cookies only for Irix. If these can be any size up to 1024bytes,
shouldn't that be handled?

I would love to be able to fix this problem, but I'm not confident
in my abilities to make this change. (Also, I don't have access to a
machine which I can reboot very often, nor one that I can make unstable
through mistakes.)

Is anyone able to fix this? I might be able to arrange access to
the Irix machine for testing. Please let me know.

> The NLM code was about the only part of the NFS code that I did not
> touch when doing the NFSv3 patches. Hence NLM will definitely not work
> with NFSv3 unless Alan adds the necessary patches.

-Ben

------------------------------------ |\ _,,,--,,_ ,) ----------
Benjamin Kahn /,`.-'`' -, ;-;;'
(212) 924 - 2220 |,4- ) )-,_ ) /\
ben@cybersites.com --------------- '---''(_/--' (_/-' ---------------
Meet Linux: Forrest Gump as an operating system.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/