Received: by 2002:ac0:b08d:0:0:0:0:0 with SMTP id l13csp4917493imc; Mon, 25 Feb 2019 13:35:44 -0800 (PST) X-Google-Smtp-Source: AHgI3IZvtwTVaeDJucjv3oogfsXU6jk+sUaAkHXTqPdI+Py9FXQwiBDqaTNJap/JAdiJwMU8YkFG X-Received: by 2002:a17:902:6949:: with SMTP id k9mr22872240plt.188.1551130544540; Mon, 25 Feb 2019 13:35:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1551130544; cv=none; d=google.com; s=arc-20160816; b=TV0CbAEhTOV1grmA/e7XwbreS8yyFrSOWNq5b4ZHp0sVQMhKniqACozi/9JLNIxuPb 9fMhhmw89vYfVRw1dJddCqPoemCj4lrLODKC/HvZtI7z/wMbOxsSRlStube8bioGlQk5 SGATCtkn5ujABr5jfn8tsW/yrxCnzmmasxMbuECHQnRjyMkYK1BSOOxD51WTpacydfSL fhgTC0yrqwv6rFWmTCOzc94Se3GRLM15Lx/GRYKBFjWzUCKVoMvkndg66yFvYcrjr52o d1xDs+T4E2DSLKTQsCn7CXODqW1gnub2Td3ww0R31kQ2JmkXgW1aZSX4BJRPpWWxiucp 6pcA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=6IgzLNN/iNm6P0+M+OfH5W4NOE/EvlCxJh0r0PkQfOA=; b=SJwM/yC+LybAKY5348omoQteVLK7WZfYB5y5mdVi72DABVhtU8MJLhA9Cfyw5ouqUl E5qmDs4/g5Kv+aGtAVGcT4yXToiCHjWiQT/u69jn/IGKQomk+r6s2pE6HtXdHaD8CrYj khxOn+elZKCQOSYLE6EiPW3o6Qo2dmpu9NIt1sf5YNwKZp2r4h8H3wcxh9yEIAHy0B2M mBWg5WCBnbQwa1JMxDPNRpReao3a15VDi2Z6lNnw2BkO2RtCb0hOy5+hjhWIu1IJkEIL yRClH8e6ca8jApLyrOxM98VyCio+BK0pvOPhND7Wggiti3l5EyuQa0HVb/G449K2TLrq ya0Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=0baghM+D; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u38si10690531pga.143.2019.02.25.13.35.26; Mon, 25 Feb 2019 13:35:44 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=0baghM+D; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732920AbfBYVfE (ORCPT + 99 others); Mon, 25 Feb 2019 16:35:04 -0500 Received: from mail.kernel.org ([198.145.29.99]:41180 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732683AbfBYVfC (ORCPT ); Mon, 25 Feb 2019 16:35:02 -0500 Received: from localhost (5356596B.cm-6-7b.dynamic.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id AD141217F5; Mon, 25 Feb 2019 21:35:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1551130502; bh=bWM/iRotfI9CwntaFzSTbXCJXR9aajbYZ/AUOFx9vLQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=0baghM+DcRlXEKCuyc4pavkzIa3nWY3s2ydXKV95sMaFvUxJ2/8HqxytCWrFEgydH 4dLzQRv7OGBoYhkPl7JNafO9L/Ru/TDAbWDMI9BPo734oLzLHN5MzleFPdgENqZtjE tu9u7y2Iv73+DBN7PInsX0zAgyZ62wlDmEB10nhM= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, David Howells , Sasha Levin Subject: [PATCH 4.20 103/183] afs: Fix key refcounting in file locking code Date: Mon, 25 Feb 2019 22:11:16 +0100 Message-Id: <20190225195112.060193596@linuxfoundation.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190225195054.748060397@linuxfoundation.org> References: <20190225195054.748060397@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.20-stable review patch. If anyone has any objections, please let me know. ------------------ [ Upstream commit 59d49076ae3e6912e6d7df2fd68e2337f3d02036 ] Fix the refcounting of the authentication keys in the file locking code. The vnode->lock_key member points to a key on which it expects to be holding a ref, but it isn't always given an extra ref, however. Fixes: 0fafdc9f888b ("afs: Fix file locking") Signed-off-by: David Howells Signed-off-by: Sasha Levin --- fs/afs/flock.c | 4 ++-- fs/afs/inode.c | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/fs/afs/flock.c b/fs/afs/flock.c index 0568fd9868210..e432bd27a2e7b 100644 --- a/fs/afs/flock.c +++ b/fs/afs/flock.c @@ -208,7 +208,7 @@ void afs_lock_work(struct work_struct *work) /* The new front of the queue now owns the state variables. */ next = list_entry(vnode->pending_locks.next, struct file_lock, fl_u.afs.link); - vnode->lock_key = afs_file_key(next->fl_file); + vnode->lock_key = key_get(afs_file_key(next->fl_file)); vnode->lock_type = (next->fl_type == F_RDLCK) ? AFS_LOCK_READ : AFS_LOCK_WRITE; vnode->lock_state = AFS_VNODE_LOCK_WAITING_FOR_CB; goto again; @@ -413,7 +413,7 @@ static void afs_dequeue_lock(struct afs_vnode *vnode, struct file_lock *fl) /* The new front of the queue now owns the state variables. */ next = list_entry(vnode->pending_locks.next, struct file_lock, fl_u.afs.link); - vnode->lock_key = afs_file_key(next->fl_file); + vnode->lock_key = key_get(afs_file_key(next->fl_file)); vnode->lock_type = (next->fl_type == F_RDLCK) ? AFS_LOCK_READ : AFS_LOCK_WRITE; vnode->lock_state = AFS_VNODE_LOCK_WAITING_FOR_CB; afs_lock_may_be_available(vnode); diff --git a/fs/afs/inode.c b/fs/afs/inode.c index 211343831c304..1a4ce07fb406d 100644 --- a/fs/afs/inode.c +++ b/fs/afs/inode.c @@ -545,6 +545,8 @@ void afs_evict_inode(struct inode *inode) #endif afs_put_permits(rcu_access_pointer(vnode->permit_cache)); + key_put(vnode->lock_key); + vnode->lock_key = NULL; _leave(""); } -- 2.19.1