mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-10 07:50:04 +00:00
close the race in nlmsvc_free_block()
we need to grab mutex before the reference counter reaches 0 Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
156cacb1d0
commit
c5aa1e554a
@ -289,7 +289,6 @@ static void nlmsvc_free_block(struct kref *kref)
|
||||
dprintk("lockd: freeing block %p...\n", block);
|
||||
|
||||
/* Remove block from file's list of blocks */
|
||||
mutex_lock(&file->f_mutex);
|
||||
list_del_init(&block->b_flist);
|
||||
mutex_unlock(&file->f_mutex);
|
||||
|
||||
@ -303,7 +302,7 @@ static void nlmsvc_free_block(struct kref *kref)
|
||||
static void nlmsvc_release_block(struct nlm_block *block)
|
||||
{
|
||||
if (block != NULL)
|
||||
kref_put(&block->b_count, nlmsvc_free_block);
|
||||
kref_put_mutex(&block->b_count, nlmsvc_free_block, &block->b_file->f_mutex);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
x
Reference in New Issue
Block a user