Re: blocking file lock functions (lockf,flock,fcntl) do not returnafter timer signal

From: Trond Myklebust
Date: Wed Oct 12 2005 - 09:39:51 EST


on den 12.10.2005 Klokka 14:48 (+0200) skreiv Alex Riesen:
> On 10/12/05, "Dieter MÃller (BOI GmbH)" <dieter.mueller@xxxxxx> wrote:
> > bug description:
> >
> > flock, lockf, fcntl do not return even after the signal SIGALRM has
> > been raised and the signal handler function has been executed
> > the functions should return with a return value EWOULDBLOCK as described
> > in the man pages

Works for me on a local filesystem.

Desktop$ ./gnurr gnarg
locking...
timeout
timeout
timeout
timeout
timeout

However it is true that it doesn't work over NFSv2/v3. The latter is
probably because we use the synchronous NLM calls which block all
signals during the wait in order to avoid state consistency problems (if
the lock gets granted on server after the client was interrupted, then
the administrator gets to clean up the lock).

We can probably relax this requirement a bit, and rely on the CANCEL
call to get us out of trouble.

Cheers,
Trond

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