Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c5aa1e55 authored by Al Viro's avatar Al Viro
Browse files

close the race in nlmsvc_free_block()



we need to grab mutex before the reference counter reaches 0

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 156cacb1
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -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);
}

/*