Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp3692156ybv; Mon, 10 Feb 2020 04:48:38 -0800 (PST) X-Google-Smtp-Source: APXvYqy6RdIEeTtQWJlLk02LSZy7XNYYD9/QNd5XUdMqiFCWu9ry8ZLvSOJ4deQ8Bnc8jpngOJYf X-Received: by 2002:aca:d502:: with SMTP id m2mr676633oig.41.1581338918141; Mon, 10 Feb 2020 04:48:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1581338918; cv=none; d=google.com; s=arc-20160816; b=L3z11WtiEApiXWM/+msDHTcl38zmoF4v9L2eB+Bq+XR5l8WJpYFXihteIxOp09Dit2 bAKnU9yp49WfiS6KiOmfkYdySt1k5dzViDqzyCMYh40bNvBr/KDgTbg7GOV9d1OY+Taz YcHnAqTs4Q/tU+Zxq87bVK5+l+9yjqaAdoJDKxrXFInxLsuWlMGPivDNYv713vE2jKd1 guJgvGo5ZvwBxdmvtqte36BlCl0BLq3PZf3cvkUXPZwAMwA9xRypdd/hHdxSQd7gNLht SEEW+ENRbF7CqQ/JMnbdBg24lXR2zXhve+vX80yztLH9o/OzObJbFPPICGoNk4woF8jh o8zw== 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=/r89giIyylWPjiugVdqCkcz0jzJFUpG2R+u/vOsDDso=; b=QdkxjBV0U49J2is/5xwBZmsgB/z+vmtww1tudHpLKixJtp58Zi8fxnkFd+KplIE0bk Fwiu1ijdRqIvTR3UWUpDCHC0snLjunzZcz7KdmHYu2Xtoq/Lz7Cimeu8tQzORNyHSX/9 XzJuwxcyMvtrpWGVtHee6Xp38JvFyZJ/mi+ffXCsNTdsNk3skZ1BZpZFLCa1fgSCnQdp PLpXunEwoN3gyVtqOPmt+BuGvgbvDWmnY1ZQeqXQeym1a9iXFAM8CeoMrhhNYrcdR7NF gJvBJmELAz4H9FLtcwxWVBqhk78oRfywD1pKcoIb4xXBAdrA9231QeySpVC1lT4LLttb 6zjw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="T/B1Z0PZ"; 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 v7si125449oic.208.2020.02.10.04.48.26; Mon, 10 Feb 2020 04:48:38 -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="T/B1Z0PZ"; 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 S1728197AbgBJMrR (ORCPT + 99 others); Mon, 10 Feb 2020 07:47:17 -0500 Received: from mail.kernel.org ([198.145.29.99]:45824 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730152AbgBJMmH (ORCPT ); Mon, 10 Feb 2020 07:42:07 -0500 Received: from localhost (unknown [209.37.97.194]) (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 E11382085B; Mon, 10 Feb 2020 12:42:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1581338527; bh=D6Xx5M7Rs1pV0xGzj0es8MZ19wcAYT/gPZPjlbzvoug=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=T/B1Z0PZc8MugixW6DyuWZMw3cByC1bXIfN+a9j2Dk+og9Xb9REQfCb+avQEkC6ta r9JL5ovAk1loy5o6PalBGzUFjcfJBcAAMjz1XgPZ3Mlaqt7IfQ50aoiwvefD3oHzO4 dNoCvWKfsyEBtIBvzRwEMXWIOg8Ys9gRbjwKeSf8= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Aurelien Aptel , Steve French , Pavel Shilovsky Subject: [PATCH 5.5 348/367] cifs: fix mode bits from dir listing when mounted with modefromsid Date: Mon, 10 Feb 2020 04:34:21 -0800 Message-Id: <20200210122454.675867923@linuxfoundation.org> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200210122423.695146547@linuxfoundation.org> References: <20200210122423.695146547@linuxfoundation.org> User-Agent: quilt/0.66 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 From: Aurelien Aptel commit e3e056c35108661e418c803adfc054bf683426e7 upstream. When mounting with -o modefromsid, the mode bits are stored in an ACE. Directory enumeration (e.g. ls -l /mnt) triggers an SMB Query Dir which does not include ACEs in its response. The mode bits in this case are silently set to a default value of 755 instead. This patch marks the dentry created during the directory enumeration as needing re-evaluation (i.e. additional Query Info with ACEs) so that the mode bits can be properly extracted. Quick repro: $ mount.cifs //win19.test/data /mnt -o ...,modefromsid $ touch /mnt/foo && chmod 751 /mnt/foo $ stat /mnt/foo # reports 751 (OK) $ sleep 2 # dentry older than 1s by default get invalidated $ ls -l /mnt # since dentry invalid, ls does a Query Dir # and reports foo as 755 (WRONG) Signed-off-by: Aurelien Aptel Signed-off-by: Steve French CC: Stable Reviewed-by: Pavel Shilovsky Signed-off-by: Greg Kroah-Hartman --- fs/cifs/readdir.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) --- a/fs/cifs/readdir.c +++ b/fs/cifs/readdir.c @@ -196,7 +196,8 @@ cifs_fill_common_info(struct cifs_fattr * may look wrong since the inodes may not have timed out by the time * "ls" does a stat() call on them. */ - if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_CIFS_ACL) + if ((cifs_sb->mnt_cifs_flags & CIFS_MOUNT_CIFS_ACL) || + (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MODE_FROM_SID)) fattr->cf_flags |= CIFS_FATTR_NEED_REVAL; if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_UNX_EMUL &&