From patchwork Sun Dec 22 14:58:42 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Pali_Roh=C3=A1r?= X-Patchwork-Id: 13918090 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F16F718F2EF; Sun, 22 Dec 2024 14:59:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734879572; cv=none; b=X5BNEKZkDvgrYJkVa0Ch2piplD44rf1TkOJuqkP3LAbPrXo+yR93rVQaxE197SBnMV9oNmFv6/Av5r1DhURw6lWcCVpEFS9wBqTqCxnyMkNh0oUloWupBmbUo3lseFgDdmMdPDWFIpHFJ+bsc7Sl02wrzUWvFhcGqN4gOwb/3s0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734879572; c=relaxed/simple; bh=8WOB6f+UEr9J0RPx979Kbw6EEKfbBot12UyD+7tqZXc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=C5xWy3eJueB6OuiYYWRdUNRqg/NnnIJjuyybyCoElhUkyEOqcBsPSolOAeJUb7CU79l823Xpnd9BiMb2hl9Vs2GARkCk+EPQPi8pdYA8SkM1hEsQor1XfCcwLNgsmmgomekqS6WoAMON+oGaBCnc+uVQdXpPqg4GJNwMTdSqNC0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=uNEHdtvj; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="uNEHdtvj" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6BDEFC4CED3; Sun, 22 Dec 2024 14:59:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1734879571; bh=8WOB6f+UEr9J0RPx979Kbw6EEKfbBot12UyD+7tqZXc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uNEHdtvjf8EH3e4efj3LQDUJCJO/DlhpLNeqg5Rxg+LBrmFYPUGr35G6z72d8O0lS 3yABXzIraCRh+bBjLLH8GSfVHEIcvuBCUY3qX5AfDgi/Jj6fezLGMTgi+7QZixj0wb 9XEjwJCVlJG8QO4gjCILi2EcOZ0B6vjiXkC75IQ6Mi69pJsvLp6tdSqkjkXifaTEON KqlWMPzfd/evj2UCXuIi7xxVH20Wl21tGL48gBmqdST4e+wTPKcJN6cI3Ef+vCEEDR LQhsywZ4EDQd6KDsuJVqsHIxVQIfpy7e8HnWHXr8hyTbrk4GCz1P7umwgfHJJ08VLW c3WPnaDbZRzrg== Received: by pali.im (Postfix) id 7CC22982; Sun, 22 Dec 2024 15:59:21 +0100 (CET) From: =?utf-8?q?Pali_Roh=C3=A1r?= To: Steve French , Paulo Alcantara , Ronnie Sahlberg Cc: linux-cifs@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/4] cifs: Throw -EOPNOTSUPP error on unsupported reparse point type from parse_reparse_point() Date: Sun, 22 Dec 2024 15:58:42 +0100 Message-Id: <20241222145845.23801-2-pali@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241222145845.23801-1-pali@kernel.org> References: <20241222145845.23801-1-pali@kernel.org> Precedence: bulk X-Mailing-List: linux-cifs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 This would help to track and detect by caller if the reparse point type was processed or not. Signed-off-by: Pali Rohár --- fs/smb/client/reparse.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/fs/smb/client/reparse.c b/fs/smb/client/reparse.c index 4ea987f84bd1..63a95ecc7542 100644 --- a/fs/smb/client/reparse.c +++ b/fs/smb/client/reparse.c @@ -1088,13 +1088,12 @@ int parse_reparse_point(struct reparse_data_buffer *buf, le32_to_cpu(buf->ReparseTag)); return -EIO; } - break; + return 0; default: cifs_tcon_dbg(VFS | ONCE, "unhandled reparse tag: 0x%08x\n", le32_to_cpu(buf->ReparseTag)); - break; + return -EOPNOTSUPP; } - return 0; } int smb2_parse_reparse_point(struct cifs_sb_info *cifs_sb, From patchwork Sun Dec 22 14:58:43 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Pali_Roh=C3=A1r?= X-Patchwork-Id: 13918089 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F169F38385; Sun, 22 Dec 2024 14:59:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734879572; cv=none; b=dxkasNMbzF/PUw3N4d3ZW1yWHgrVbFGb0P+wO1F1keCrP5NlBJ4FRYrHd2g4U6IBdaJYQzqWN/6pGLjyeTopsTR42y/gk2xO39gJum/P9fIV3pL0LDzE8eqvbUgV7nsxqyHFD/7U22jcUpsYrf6PdtyGllnZADBf4JbQbE0Zda0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734879572; c=relaxed/simple; bh=wwqBsWcxZC84pRk3Bl1cSD+E6PrIZa85GEnwzxufZKc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=OrsBwEeub+qdTkmsZ8MLaAt7iu8X1Q1yABpcpfssQds/VOEonc5EOqYed4fcmd3qRbvzrikBHGqt5Y9v+I4LiZYxNflimBbjJLt9bZ/wiaaLFLiZDPuBrTvl3YLb33yan0L+4vAd1KzHHXGg4qFFii5Jux1SDRfe21TBalQaEzA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nHuYvL2F; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nHuYvL2F" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 691B6C4CECD; Sun, 22 Dec 2024 14:59:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1734879571; bh=wwqBsWcxZC84pRk3Bl1cSD+E6PrIZa85GEnwzxufZKc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nHuYvL2F0rbjMT3L/GH1PWeTxTOz/OmZPs3e2dyb9/fQtVJCHFOJcX8hLgSIAcZwZ MQzcWnbei8vJfi9DbCv8KqtsFVGGTBDj1W23laSVVr2iqlgism0oOoFww6dB8VrtAZ QPY3VerPtMlhnrFv0zpZcaPSPnnMpBjDh/g0/XTV/CK/mIFiyqOPd9cMAND0ls2RX8 ndi3zBJHEOH9C9QE0pFx7WrQ33MmoFfySXd0EqZjIvcHVJJ84SqrF39cJt7w5Qf4Df i3B50nuh1uyjRG5RiVC/KwY9000uzmiScdMx/yKgo0WWFo8xuIDCSjYclXY1beAVYr 1yjIKGpEEspqg== Received: by pali.im (Postfix) id B56B2B9A; Sun, 22 Dec 2024 15:59:21 +0100 (CET) From: =?utf-8?q?Pali_Roh=C3=A1r?= To: Steve French , Paulo Alcantara , Ronnie Sahlberg Cc: linux-cifs@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/4] cifs: Treat unhandled directory name surrogate reparse points as mount directory nodes Date: Sun, 22 Dec 2024 15:58:43 +0100 Message-Id: <20241222145845.23801-3-pali@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241222145845.23801-1-pali@kernel.org> References: <20241222145845.23801-1-pali@kernel.org> Precedence: bulk X-Mailing-List: linux-cifs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 If the reparse point was not handled (indicated by the -EOPNOTSUPP from ops->parse_reparse_point() call) but reparse tag is of type name surrogate directory type, then treat is as a new mount point. Name surrogate reparse point represents another named entity in the system. From SMB client point of view, this another entity is resolved on the SMB server, and server serves its content automatically. Therefore from Linux client point of view, this name surrogate reparse point of directory type crosses mount point. Signed-off-by: Pali Rohár --- fs/smb/client/inode.c | 13 +++++++++++++ fs/smb/common/smbfsctl.h | 3 +++ 2 files changed, 16 insertions(+) diff --git a/fs/smb/client/inode.c b/fs/smb/client/inode.c index 19b6d68007fb..b26403e6fc2c 100644 --- a/fs/smb/client/inode.c +++ b/fs/smb/client/inode.c @@ -1215,6 +1215,19 @@ static int reparse_info_to_fattr(struct cifs_open_info_data *data, rc = server->ops->parse_reparse_point(cifs_sb, full_path, iov, data); + /* + * If the reparse point was not handled but it is the + * name surrogate which points to directory, then treat + * is as a new mount point. Name surrogate reparse point + * represents another named entity in the system. + */ + if (rc == -EOPNOTSUPP && + IS_REPARSE_TAG_NAME_SURROGATE(data->reparse.tag) && + (le32_to_cpu(data->fi.Attributes) & ATTR_DIRECTORY)) { + rc = 0; + cifs_create_junction_fattr(fattr, sb); + goto out; + } } if (data->reparse.tag == IO_REPARSE_TAG_SYMLINK && !rc) { diff --git a/fs/smb/common/smbfsctl.h b/fs/smb/common/smbfsctl.h index 4b379e84c46b..3253a18ecb5c 100644 --- a/fs/smb/common/smbfsctl.h +++ b/fs/smb/common/smbfsctl.h @@ -159,6 +159,9 @@ #define IO_REPARSE_TAG_LX_CHR 0x80000025 #define IO_REPARSE_TAG_LX_BLK 0x80000026 +/* If Name Surrogate Bit is set, the file or directory represents another named entity in the system. */ +#define IS_REPARSE_TAG_NAME_SURROGATE(tag) (!!((tag) & 0x20000000)) + /* fsctl flags */ /* If Flags is set to this value, the request is an FSCTL not ioctl request */ #define SMB2_0_IOCTL_IS_FSCTL 0x00000001 From patchwork Sun Dec 22 14:58:44 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Pali_Roh=C3=A1r?= X-Patchwork-Id: 13918092 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 33C1D190056; Sun, 22 Dec 2024 14:59:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734879572; cv=none; b=KkvmVITlT6Wc/+x7smtapio07/TRc+BA1ztJ6BYZd3DF9UWRElp1to9FOYA1dpBCG4HW68VLwCdMV1Phw2V+qtj0u6LXF5ES0F5FSsLUWsR/wzk2+mmsy68wB7tbQhOioXTyb2FaCH7bfslMTQsYXt2nIpk5paXMKS2V9aYgbBo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734879572; c=relaxed/simple; bh=Mt3mMGOeqdUffvUI0ZUvssJNk1SNS0DX0vOeDCD/sc0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=KHLoQWvB7DEniRiqfpy4NzOVOnu7hvv9YlN4a1rJPcD6TZf8qZOaBAOQPPVC7dWiT8ePFSqKN5+jcipRyOaqQioQG1oSZqVVtzPhhto1qqNEkKgHXyGvCIszrK/XACf4m7Q/tLJiMDIt7JTFpOj1u31Fs7VN4H8CaCOYWCs6r+M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=l30EOYrH; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="l30EOYrH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9BA1DC4CEDC; Sun, 22 Dec 2024 14:59:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1734879571; bh=Mt3mMGOeqdUffvUI0ZUvssJNk1SNS0DX0vOeDCD/sc0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=l30EOYrHTH17EtOfCSZ26zt687CL4ZIZhNJllwrUKZd+XWSR4Yi6yZsRxauF6yj9o pPehiXdfIIpW9wo11/NCF+8ZCSKhnLtVrkIxsHWTYXGKdHpO742b/zSMSvMfHD7e2P sLruDUBbtaIWOD2fg7cXC3yCcgjEIIMDgL15OgRIwM1ChQjtPV/k/f9QN9AUWaw2Rw gTq/cpKMPce9Pik+01Wvpdv5D0CHTe0pW1mqsgJrTnMz7pDtndC8nK02JwZn/o6TFS 9AnbtOaB54a3Lpeqn04JjnuAIogCko1t/3329c2i4YTekq77w1lKLE0aIBjgDOB+qv ir0jMk93NbmlA== Received: by pali.im (Postfix) id DE8B7D48; Sun, 22 Dec 2024 15:59:21 +0100 (CET) From: =?utf-8?q?Pali_Roh=C3=A1r?= To: Steve French , Paulo Alcantara , Ronnie Sahlberg Cc: linux-cifs@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/4] cifs: Remove explicit handling of IO_REPARSE_TAG_MOUNT_POINT in inode.c Date: Sun, 22 Dec 2024 15:58:44 +0100 Message-Id: <20241222145845.23801-4-pali@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241222145845.23801-1-pali@kernel.org> References: <20241222145845.23801-1-pali@kernel.org> Precedence: bulk X-Mailing-List: linux-cifs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 IO_REPARSE_TAG_MOUNT_POINT is just a specific case of directory Name Surrogate reparse point. As reparse_info_to_fattr() already handles all directory Name Surrogate reparse point (done by the previous change), there is no need to have explicit case for IO_REPARSE_TAG_MOUNT_POINT. Signed-off-by: Pali Rohár --- fs/smb/client/inode.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/fs/smb/client/inode.c b/fs/smb/client/inode.c index b26403e6fc2c..ed32d78971f8 100644 --- a/fs/smb/client/inode.c +++ b/fs/smb/client/inode.c @@ -1203,10 +1203,6 @@ static int reparse_info_to_fattr(struct cifs_open_info_data *data, goto out; } break; - case IO_REPARSE_TAG_MOUNT_POINT: - cifs_create_junction_fattr(fattr, sb); - rc = 0; - goto out; default: /* Check for cached reparse point data */ if (data->symlink_target || data->reparse.buf) { From patchwork Sun Dec 22 14:58:45 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Pali_Roh=C3=A1r?= X-Patchwork-Id: 13918093 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A4F9E191489; Sun, 22 Dec 2024 14:59:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734879572; cv=none; b=UyOCjebxj0Tge1zRYxYmxDkIcdA1XkTISlOegDBhjzNZBrI5xrh3qr69w1OM3cwm68/7CijxeraQJHYXCkqmE8odUTrtyeLoh+KlWbUs/WuKSl4s8+XlQdQOgovbuzE1MoDrG72Jyq5qkPSvF1whi8zQ5/Mp9HkrSE1eZelCdmE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734879572; c=relaxed/simple; bh=qhFm9PJ1h5CY4n+ytIU5HeDsZ6HiiW955ZSMx62QbdM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=sEzb/Y4Y9xm+B44o9bhv6XDEL6Gyr6eZCZnHX6Qs7x9LPtesrQcM0FWRGLvPYDT9uRQeL6zFPbOz9UVq/BcSQxRV9aF5OcUQHNfPPro6MfXlSUo9pzOkOj6px9frojqj5TS0eDn5nWGzXT5H5PE7s+WoXf1+H1lTuL0fVp8Kn6s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=FyIYQJMt; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="FyIYQJMt" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 14ADFC4CEDE; Sun, 22 Dec 2024 14:59:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1734879572; bh=qhFm9PJ1h5CY4n+ytIU5HeDsZ6HiiW955ZSMx62QbdM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FyIYQJMtFR/KnpAMfh1FnoOCydBxdTuuu7vAK9MxfALZrPROm92sM58hHKoYHO/HA swPeDKKCG+iQbZRoZT1mk2t5Q3rbkOeW+PTpWPajlkI6WsyDMAyBF695ZbaQeDa3qJ T+Uz4UUMkFGoK+ExuomtYlxYikwDRnLI4CXqiHYk3iQVlSt7njKcnnvaYPLY5GSHaA wMiVm7uzeI+XjD9kiZQuny8HzpPTBmINNQX6UKCJm1PotcWrrKhSdysFVl9CFxSRJu Kg21y9GMe1cNSIwy0CS+R0xIk+XfC8FOP+tzjgbdUEw3fq++HCgGkZiSwm3f7F3v6F ABFzBVQ/+zq9w== Received: by pali.im (Postfix) id 15655EEC; Sun, 22 Dec 2024 15:59:22 +0100 (CET) From: =?utf-8?q?Pali_Roh=C3=A1r?= To: Steve French , Paulo Alcantara , Ronnie Sahlberg Cc: linux-cifs@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 4/4] cifs: Improve handling of name surrogate reparse points in reparse.c Date: Sun, 22 Dec 2024 15:58:45 +0100 Message-Id: <20241222145845.23801-5-pali@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241222145845.23801-1-pali@kernel.org> References: <20241222145845.23801-1-pali@kernel.org> Precedence: bulk X-Mailing-List: linux-cifs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Like previous changes for file inode.c, handle directory name surrogate reparse points generally also in reparse.c. Signed-off-by: Pali Rohár --- fs/smb/client/reparse.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/fs/smb/client/reparse.c b/fs/smb/client/reparse.c index 63a95ecc7542..6ffda4455f9b 100644 --- a/fs/smb/client/reparse.c +++ b/fs/smb/client/reparse.c @@ -1222,16 +1222,6 @@ bool cifs_reparse_point_to_fattr(struct cifs_sb_info *cifs_sb, bool ok; switch (tag) { - case IO_REPARSE_TAG_INTERNAL: - if (!(fattr->cf_cifsattrs & ATTR_DIRECTORY)) - return false; - fallthrough; - case IO_REPARSE_TAG_DFS: - case IO_REPARSE_TAG_DFSR: - case IO_REPARSE_TAG_MOUNT_POINT: - /* See cifs_create_junction_fattr() */ - fattr->cf_mode = S_IFDIR | 0711; - break; case IO_REPARSE_TAG_LX_SYMLINK: case IO_REPARSE_TAG_LX_FIFO: case IO_REPARSE_TAG_AF_UNIX: @@ -1249,7 +1239,14 @@ bool cifs_reparse_point_to_fattr(struct cifs_sb_info *cifs_sb, fattr->cf_mode |= S_IFLNK; break; default: - return false; + if (!(fattr->cf_cifsattrs & ATTR_DIRECTORY)) + return false; + if (!IS_REPARSE_TAG_NAME_SURROGATE(tag) && + tag != IO_REPARSE_TAG_INTERNAL) + return false; + /* See cifs_create_junction_fattr() */ + fattr->cf_mode = S_IFDIR | 0711; + break; } fattr->cf_dtype = S_DT(fattr->cf_mode);