summaryrefslogtreecommitdiffstats
path: root/fs/lockd/svcsubs.c
diff options
context:
space:
mode:
authorAndy Adamson <andros@citi.umich.edu>2006-03-20 19:44:26 +0100
committerTrond Myklebust <Trond.Myklebust@netapp.com>2006-03-20 19:44:26 +0100
commit8dc7c3115b611c00006eac3ee5b108296432aab7 (patch)
treebe44c59907cbdcb6fdf46d0ad9cc140af757acfc /fs/lockd/svcsubs.c
parentlocks: remove unused posix_block_lock (diff)
downloadlinux-8dc7c3115b611c00006eac3ee5b108296432aab7.tar.xz
linux-8dc7c3115b611c00006eac3ee5b108296432aab7.zip
locks,lockd: fix race in nlmsvc_testlock
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>
Diffstat (limited to 'fs/lockd/svcsubs.c')
0 files changed, 0 insertions, 0 deletions