posix_test_lock() returns a pointer to a struct file_lock which is unprotected and can be removed while in use by the caller. Move the conflicting lock from the return to a parameter, and copy the conflicting lock. In most cases the caller ends up putting the copy of the conflicting lock on the stack. On i386, sizeof(struct file_lock) appears to be about 100 bytes. We're assuming that's reasonable. Signed-off-by: Andy Adamson <andros@citi.umich.edu> Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> |
||
---|---|---|
.. | ||
clntlock.c | ||
clntproc.c | ||
host.c | ||
Makefile | ||
mon.c | ||
svc4proc.c | ||
svc.c | ||
svclock.c | ||
svcproc.c | ||
svcshare.c | ||
svcsubs.c | ||
xdr4.c | ||
xdr.c |