Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp3005865imu; Sun, 9 Dec 2018 14:56:03 -0800 (PST) X-Google-Smtp-Source: AFSGD/XjUkcJxWUhYj2kNSk8O3cAoFIiUoRkx4Wu0cRIYh9VJi78Aaezs075vXTqxPfyFd661Pua X-Received: by 2002:a63:235f:: with SMTP id u31mr8848641pgm.122.1544396163624; Sun, 09 Dec 2018 14:56:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544396163; cv=none; d=google.com; s=arc-20160816; b=qWXzqZ5sh5oSXJi6EULUa8aUKLx+f6CAHiPp3geKBtQcx+j/fm1gUe0k7EEbNXoPj+ FepblxCKIdFjxNUgaIusfNsGurNj61EBF6LnNGdiTVr77DatF4rMVHEo9EvqQZT5yrrG fsUOqdvfvP3DNEk1H0+MkaCMDr8wbJOIb9COXVb7GAkmMMsWl1pu6QsRGO2HWe4PC7zv Q3n9U41kEQWfeNeVN51Lqwn+G/cHJjh8QszyRb4yU32pqg6OcQNDumpzcThhTil1JSD9 1QgtFmiuQryHSeDD61zlvBWHVjD2xHyoQAI4SbZ3unbTkjF44oCukppah9bvKcDHzRRh ItPg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:subject:message-id:date:cc:to :from:mime-version:content-transfer-encoding:content-disposition; bh=QQwgoFTdg3FcQ3rcPfLd5lJ9Wg/GSJ40PAtuVzttS94=; b=elfnbMXlvHjeKzmHkWoccwuqNqqCSDV+bev68MVISFeRDQ8zUmWmGIlcOn+pZTxMbs RQqs/hQA0I+5XVJHTVh2Ac3QItrJcPLoj4FRMDas7Q93bceG8m3vm/KnpBs3KnToUl1b h7BA69QfMEKM6E7dtOdbV++buyfN9+JRU8wpiDasyu9uKcD4kwXun3jNhtxgJZPjlIig 79En2sdxVCJrwgYHRFObUHrAokEqgCMg0lo+0dDrog3r4fwDD6V3jSJ6N32+N1YrvY0v ihwW4dtaCeXsEiMWi9sQZuXl15RcG0CC7XmJTAPJlhR87JgwLPLf5JjEgHIu8+kuKQDV Y1vw== ARC-Authentication-Results: i=1; mx.google.com; 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 gn20si8498533plb.98.2018.12.09.14.55.48; Sun, 09 Dec 2018 14:56:03 -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; 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 S1727581AbeLIWIc (ORCPT + 99 others); Sun, 9 Dec 2018 17:08:32 -0500 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:37332 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726922AbeLIWI1 (ORCPT ); Sun, 9 Dec 2018 17:08:27 -0500 Received: from pub.yeoldevic.com ([81.174.156.145] helo=deadeye) by shadbolt.decadent.org.uk with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1gW738-0002il-Di; Sun, 09 Dec 2018 21:55:43 +0000 Received: from ben by deadeye with local (Exim 4.91) (envelope-from ) id 1gW72f-0003Su-7p; Sun, 09 Dec 2018 21:55:13 +0000 Content-Type: text/plain; charset="UTF-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 From: Ben Hutchings To: linux-kernel@vger.kernel.org, stable@vger.kernel.org CC: akpm@linux-foundation.org, "Pavel Shilovsky" , "Steve French" Date: Sun, 09 Dec 2018 21:50:33 +0000 Message-ID: X-Mailer: LinuxStableQueue (scripts by bwh) X-Patchwork-Hint: ignore Subject: [PATCH 3.16 182/328] SMB3: Backup intent flag missing for directory opens with backupuid mounts In-Reply-To: X-SA-Exim-Connect-IP: 81.174.156.145 X-SA-Exim-Mail-From: ben@decadent.org.uk X-SA-Exim-Scanned: No (on shadbolt.decadent.org.uk); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 3.16.62-rc1 review patch. If anyone has any objections, please let me know. ------------------ From: Steve French commit 5e19697b56a64004e2d0ff1bb952ea05493c088f upstream. When "backup intent" is requested on the mount (e.g. backupuid or backupgid mount options), the corresponding flag needs to be set on opens of directories (and files) but was missing in some places causing access denied trying to enumerate and backup servers. Fixes kernel bugzilla #200953 https://bugzilla.kernel.org/show_bug.cgi?id=200953 Reported-and-tested-by: Signed-off-by: Steve French Reviewed-by: Pavel Shilovsky [bwh: Backported to 3.16: drop changes in smb2_query_eas(), smb2_set_ea()] Signed-off-by: Ben Hutchings --- --- a/fs/cifs/inode.c +++ b/fs/cifs/inode.c @@ -446,6 +446,8 @@ cifs_sfu_type(struct cifs_fattr *fattr, oparms.cifs_sb = cifs_sb; oparms.desired_access = GENERIC_READ; oparms.create_options = CREATE_NOT_DIR; + if (backup_cred(cifs_sb)) + oparms.create_options |= CREATE_OPEN_BACKUP_INTENT; oparms.disposition = FILE_OPEN; oparms.path = path; oparms.fid = &fid; --- a/fs/cifs/smb2ops.c +++ b/fs/cifs/smb2ops.c @@ -315,7 +315,10 @@ smb2_is_path_accessible(const unsigned i oparms.tcon = tcon; oparms.desired_access = FILE_READ_ATTRIBUTES; oparms.disposition = FILE_OPEN; - oparms.create_options = 0; + if (backup_cred(cifs_sb)) + oparms.create_options = CREATE_OPEN_BACKUP_INTENT; + else + oparms.create_options = 0; oparms.fid = &fid; oparms.reconnect = false; @@ -725,7 +728,10 @@ smb2_query_dir_first(const unsigned int oparms.tcon = tcon; oparms.desired_access = FILE_READ_ATTRIBUTES | FILE_READ_DATA; oparms.disposition = FILE_OPEN; - oparms.create_options = 0; + if (backup_cred(cifs_sb)) + oparms.create_options = CREATE_OPEN_BACKUP_INTENT; + else + oparms.create_options = 0; oparms.fid = fid; oparms.reconnect = false; @@ -891,7 +897,10 @@ smb2_query_symlink(const unsigned int xi oparms.tcon = tcon; oparms.desired_access = FILE_READ_ATTRIBUTES; oparms.disposition = FILE_OPEN; - oparms.create_options = 0; + if (backup_cred(cifs_sb)) + oparms.create_options = CREATE_OPEN_BACKUP_INTENT; + else + oparms.create_options = 0; oparms.fid = &fid; oparms.reconnect = false;