{"id":2230437,"url":"http://patchwork.ozlabs.org/api/1.1/patches/2230437/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-ext4/patch/20260429-case-sensitivity-v12-9-8057123bebe0@oracle.com/","project":{"id":8,"url":"http://patchwork.ozlabs.org/api/1.1/projects/8/?format=json","name":"Linux ext4 filesystem development","link_name":"linux-ext4","list_id":"linux-ext4.vger.kernel.org","list_email":"linux-ext4@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null},"msgid":"<20260429-case-sensitivity-v12-9-8057123bebe0@oracle.com>","date":"2026-04-29T18:07:20","name":"[v12,09/15] cifs: Implement fileattr_get for case sensitivity","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"608f7bb5865ea09334b76b6ec85d29b83feade81","submitter":{"id":86689,"url":"http://patchwork.ozlabs.org/api/1.1/people/86689/?format=json","name":"Chuck Lever","email":"cel@kernel.org"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-ext4/patch/20260429-case-sensitivity-v12-9-8057123bebe0@oracle.com/mbox/","series":[{"id":502125,"url":"http://patchwork.ozlabs.org/api/1.1/series/502125/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-ext4/list/?series=502125","date":"2026-04-29T18:07:11","name":"Exposing case folding behavior","version":12,"mbox":"http://patchwork.ozlabs.org/series/502125/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2230437/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2230437/checks/","tags":{},"headers":{"Return-Path":"\n <SRS0=C+We=C4=vger.kernel.org=linux-ext4+bounces-16237-patchwork-incoming=ozlabs.org@ozlabs.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-ext4@vger.kernel.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","patchwork-incoming@ozlabs.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=jX2n2cKq;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=ozlabs.org\n (client-ip=2404:9400:2221:ea00::3; helo=mail.ozlabs.org;\n envelope-from=srs0=c+we=c4=vger.kernel.org=linux-ext4+bounces-16237-patchwork-incoming=ozlabs.org@ozlabs.org;\n receiver=patchwork.ozlabs.org)","gandalf.ozlabs.org;\n arc=pass smtp.remote-ip=172.105.105.114 arc.chain=subspace.kernel.org","gandalf.ozlabs.org;\n dmarc=pass (p=quarantine dis=none) header.from=kernel.org","gandalf.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=jX2n2cKq;\n\tdkim-atps=neutral","gandalf.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.105.105.114; helo=tor.lore.kernel.org;\n envelope-from=linux-ext4+bounces-16237-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=\"jX2n2cKq\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"],"Received":["from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g5QNY2rWYz1yHZ\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 30 Apr 2026 04:11:25 +1000 (AEST)","from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\tby gandalf.ozlabs.org (Postfix) with ESMTP id 4g5QNY2Kw8z4w9R\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 30 Apr 2026 04:11:25 +1000 (AEST)","by gandalf.ozlabs.org (Postfix)\n\tid 4g5QNY2Dhdz4wLM; Thu, 30 Apr 2026 04:11:25 +1000 (AEST)","from tor.lore.kernel.org (tor.lore.kernel.org [172.105.105.114])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby gandalf.ozlabs.org (Postfix) with ESMTPS id 4g5QNT5hwQz4w9R\n\tfor <patchwork-incoming@ozlabs.org>; Thu, 30 Apr 2026 04:11:21 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id 533AD3078694\n\tfor <patchwork-incoming@ozlabs.org>; Wed, 29 Apr 2026 18:08:32 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id D480D421F18;\n\tWed, 29 Apr 2026 18:07:52 +0000 (UTC)","from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 6AB4841C2EA;\n\tWed, 29 Apr 2026 18:07:51 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPSA id 73670C2BCC9;\n\tWed, 29 Apr 2026 18:07:48 +0000 (UTC)"],"ARC-Seal":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1777486285; cv=pass;\n\tb=GwQDYELOY4UFylaNNrY+s1HNb7gEcNkTvg0xD1McnWDbUlBPCHWzp6oEJdEWe36wr5j/8gmmn5Q5ugLYyMxNc4LKjpnRgWPCH5RqMiIpI9AFhJsqFscM0EqMp0YeOnnJea7kCjrfKbhhDDU2qV0qVMwLLUHdzwLJONPBDz60Nx7/UQLbDUBsSjbLExXNMwtM9v18S8X64x0qFvGaBSCu1SoINtwB2iYzJy5n6tsGQE+OK2ErGYB9s8w0hnPu3nyQqvXLY1rt3ueXEZjRlUhSL+w8vYD0Su4Dt8mqk1R9nIk7uwA7lv3eWbdSE80jMzRtQJ9xpNodZsOcZHMNNbWAWg==","i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1777486071; cv=none;\n b=oO11oQJlhqYoNOvDvdRGgXgpXwkUMBAokKa41fIZk8VfL8KTiYv3ZOkXPYZoFbDLktX3QJXf/uaJp3S+xeKhH5aKaj6qCqQ2WkGOmj21vM8zk9uljqKWYoeoxGLIVheFYsorjtUmLtaq0gCsLSN7whVf6NZfEk2DOX5Hyq1p8pk="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707;\n\tt=1777486285; c=relaxed/relaxed;\n\tbh=o7B07YThhHDxQz4drpl34fJtmaybeyrEwYR5oHjcvoQ=;\n\th=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References:\n\t In-Reply-To:To:Cc;\n b=Hm47OHGsRJNXdhmKiZoBVRl9jd85Lywa7CsoGx3z8LizMd+TL7UurEMQIAiUwl13qI6IQnX1V7CFs3y4irLGKsdm59Q/ct7vuMD7pr9pdsI1bGULbaLwdlhfc33viQ9oCs4ZuAnhEkUcFugZ5pz381DESeaM0fe+L93XnxD+NLtMdI6XuTqXpAZBJoSM1wzOOAjftX2cPQsK8P1xHE4VVRI+u0UCzUl4HbkPEoYc7GNkk+2mfd5OkxBLNoPz+Uxs5QDzDLhk/aqCrMMz3w/FpfQVJIc/7R4xENsAkrL6VXpXBaXCjjl3U7B+T/pM/X5pqZs34+FjnubSYyFmYqDTlA==","i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1777486071; c=relaxed/simple;\n\tbh=bjnsM/1LrSZrTO9ZBZW3Xrmg7KU8lzL236VyXdB5T94=;\n\th=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References:\n\t In-Reply-To:To:Cc;\n b=EhpwBU5mjVsYuk7GRGN5UDcGXi1pSp/BhDRoJW9JPa6Up1r2jb1yoDlo7vOMUQPpUkNw+fgyg/olYOMrVwjlvVFTIqgpNKwG5UVGCHYCEWXNDOni+4vLHOgydnsm/OgOXoxBxvaaGpj6jjSF+JxhlGa2JNY6hnKsiSe3bBI5rIc="],"ARC-Authentication-Results":["i=2; gandalf.ozlabs.org;\n dmarc=pass (p=quarantine dis=none) header.from=kernel.org;\n dkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=jX2n2cKq; dkim-atps=neutral;\n spf=pass (client-ip=172.105.105.114; helo=tor.lore.kernel.org;\n envelope-from=linux-ext4+bounces-16237-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org) smtp.mailfrom=vger.kernel.org","i=1; smtp.subspace.kernel.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=jX2n2cKq; arc=none smtp.client-ip=10.30.226.201"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1777486070;\n\tbh=bjnsM/1LrSZrTO9ZBZW3Xrmg7KU8lzL236VyXdB5T94=;\n\th=From:Date:Subject:References:In-Reply-To:To:Cc:From;\n\tb=jX2n2cKqNxs9/eBtE0K3ldmdw7VPwqaUDQtK3v70Im3HnV+zpP1tHOmaUV0Bqr0TA\n\t 5hIIUQ0UksGiM9KfhJeNldcDQtxqAJIe9u8/1gPx+iFCIVKfl8xLm7GmBh8XNvXqxZ\n\t zQLTWys7n9GSw4kUsjudYrtgoJb13QRUEo1ICRdSC1ybTlPhATNByb7DVY90KYrVO7\n\t BL+oJDipHNQSwTxJIv5Nl4zxTT/XvFp6ofNzP12nRivs60qcaaPlE6QkyXonIITC8w\n\t fbnXKYOT0lH2CMu3LuWw+xJ5FP2syor0bsLOjxsxXNAiunarNsfMxtIu61np4Lp+Zm\n\t E5/la67NDTavQ==","From":"Chuck Lever <cel@kernel.org>","Date":"Wed, 29 Apr 2026 14:07:20 -0400","Subject":"[PATCH v12 09/15] cifs: Implement fileattr_get for case\n sensitivity","Precedence":"bulk","X-Mailing-List":"linux-ext4@vger.kernel.org","List-Id":"<linux-ext4.vger.kernel.org>","List-Subscribe":"<mailto:linux-ext4+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-ext4+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"7bit","Message-Id":"<20260429-case-sensitivity-v12-9-8057123bebe0@oracle.com>","References":"<20260429-case-sensitivity-v12-0-8057123bebe0@oracle.com>","In-Reply-To":"<20260429-case-sensitivity-v12-0-8057123bebe0@oracle.com>","To":"Al Viro <viro@zeniv.linux.org.uk>,\n Christian Brauner <brauner@kernel.org>, Jan Kara <jack@suse.cz>","Cc":"linux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org,\n linux-xfs@vger.kernel.org, linux-cifs@vger.kernel.org,\n linux-nfs@vger.kernel.org, linux-api@vger.kernel.org,\n linux-f2fs-devel@lists.sourceforge.net, hirofumi@mail.parknet.co.jp,\n linkinjeon@kernel.org, sj1557.seo@samsung.com, yuezhang.mo@sony.com,\n almaz.alexandrovich@paragon-software.com, slava@dubeyko.com,\n glaubitz@physik.fu-berlin.de, frank.li@vivo.com, tytso@mit.edu,\n adilger.kernel@dilger.ca, cem@kernel.org, sfrench@samba.org,\n pc@manguebit.org, ronniesahlberg@gmail.com, sprasad@microsoft.com,\n trondmy@kernel.org, anna@kernel.org, jaegeuk@kernel.org, chao@kernel.org,\n hansg@kernel.org, senozhatsky@chromium.org,\n Chuck Lever <chuck.lever@oracle.com>, Steve French <stfrench@microsoft.com>,\n Roland Mainz <roland.mainz@nrubsig.org>","X-Mailer":"b4 0.16-dev","X-Developer-Signature":"v=1; a=openpgp-sha256; l=6029;\n i=chuck.lever@oracle.com; h=from:subject:message-id;\n bh=lkiMsfMNZqz1N8jxrYrsxKA6VL8UHLCrzuPBYO2nVe0=;\n b=owEBbQKS/ZANAwAKATNqszNvZn+XAcsmYgBp8kjd4XcTscVuxvYljUn7dPNwuyadxg5cFsmUr\n ruHn5u3U7SJAjMEAAEKAB0WIQQosuWwEobfJDzyPv4zarMzb2Z/lwUCafJI3QAKCRAzarMzb2Z/\n lyEFD/4kq8AI7aycO2xscVJpEKWg1hyy0MaZi5CKj2pgM33Qr1b5Ls4lKBxKPMSzYLugw5IymsU\n HjYEWRvxr/qr5KbeGBlhx4wKwa0/s48PUiUVTBc44l46qDiBVWw25Vm/CPl16GxYQtHJuegopLS\n 7XAlKjxNezMpG7hHmz/jB247VQ9QlHXb8/BiWTHlgPG/F13CTTdO+/msnyUQVLE2X3UxbabNo0S\n gj2nOgVIBeufyQ9toJZWadtpnBPz1cB5mvPTyEdAzE7C1mBSMfIG5NU5kpUvDScpXftixA+xlXb\n Z5xpEEyNWasnwIWhrbvK0TkdJ8sl0K0lcMzZKnwqayqYnFEeZd0sn6mqCD/DvE1rA1DqRnJecGY\n O4xjIMrOqHEsIK5/FCJejoRnm+L9prYU1TesFlQiYNfW4HeVkFQ0GXBwzHALNOle2VTsa+GAdYI\n 5jj6bWG9oQSl8tUyrKvf/CZ7DYsNJXurbcJHMOXqB49iGWlWNUjv4g9pfl+ou0nbeBK6C/eq43Q\n DVt75zCoAuMUXyi1TSVkboP3nkq0RfA/gSIE/kX4upupWm2Lbi7Fnk6qMhRooPp9+Ibj1b4sIDn\n CSqsaXssx1MtCSg780uNutodqh9qt/HX+n8gsVvowqusiPrFgXqfGQlcb3d+ZNLzBB4wHu8r6V+\n APgzp36F07zDsLQ==","X-Developer-Key":"i=chuck.lever@oracle.com; a=openpgp;\n fpr=28B2E5B01286DF243CF23EFE336AB3336F667F97","X-Spam-Status":"No, score=-1.2 required=5.0 tests=ARC_SIGNED,ARC_VALID,\n\tDKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DMARC_PASS,\n\tMAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=disabled\n\tversion=4.0.1","X-Spam-Checker-Version":"SpamAssassin 4.0.1 (2024-03-25) on gandalf.ozlabs.org"},"content":"From: Chuck Lever <chuck.lever@oracle.com>\n\nUpper layers such as NFSD need a way to query whether a filesystem\nhandles filenames in a case-sensitive manner. Report CIFS/SMB case\nhandling behavior via FS_XFLAG_CASEFOLD and\nFS_XFLAG_CASENONPRESERVING.\n\nThe authoritative source is the server itself: at mount time CIFS\nissues QueryFSInfo(FS_ATTRIBUTE_INFORMATION) and caches the reply\non the tcon. That reply carries FILE_CASE_SENSITIVE_SEARCH and\nFILE_CASE_PRESERVED_NAMES, which reflect whatever case handling\nthe share actually implements after SMB3.1.1 POSIX extensions\nnegotiation. Translating those two bits into the VFS flags lets\ncifs_fileattr_get report what the server advertises rather than\nwhat the client was asked to pretend.\n\nQueryFSInfo is best-effort; the mount completes even if the server\ndoes not answer. MaxPathNameComponentLength is zero in that case\nand is used as the \"no reply received\" sentinel. When no reply is\navailable, fall back to the nocase mount option so that the reported\nbehavior agrees with the dentry comparison operations installed on\nthe superblock.\n\nThe callback is registered on cifs_dir_inode_ops so that NFSD,\nksmbd, and other consumers querying case handling against a\ndirectory get a definitive answer, and on cifs_file_inode_ops to\npreserve FS_COMPR_FL reporting on regular files. cifs_set_ops()\nalso installs cifs_namespace_inode_operations on DFS referral\ndirectories that carry IS_AUTOMOUNT; register the same callback\nthere so the answer does not depend on whether the directory is\na referral point.\n\nRegistering fileattr_get routes FS_IOC_GETFLAGS through\nvfs_fileattr_get() and short-circuits the syscall's fallback to\ncifs_ioctl(). That fallback invoked CIFSGetExtAttr() under\nCONFIG_CIFS_POSIX and CONFIG_CIFS_ALLOW_INSECURE_LEGACY on servers\nadvertising CIFS_UNIX_EXTATTR_CAP, surfacing the SMB1 Unix-extension\nimmutable, append, and nodump bits. cifs_fileattr_get carries over\nonly FS_COMPR_FL from cached cifsAttrs; the SMB1 extattr fetch is\nnot reproduced. SMB1 is deprecated, and acquiring a netfid from\nwithin a dentry-only callback is not worth preserving a path tied\nto an insecure legacy dialect.\n\nAcked-by: Steve French <stfrench@microsoft.com>\nReviewed-by: Roland Mainz <roland.mainz@nrubsig.org>\nSigned-off-by: Chuck Lever <chuck.lever@oracle.com>\n---\n fs/smb/client/cifsfs.c    | 41 +++++++++++++++++++++++++++++++++++++++++\n fs/smb/client/cifsfs.h    |  3 +++\n fs/smb/client/namespace.c |  1 +\n 3 files changed, 45 insertions(+)","diff":"diff --git a/fs/smb/client/cifsfs.c b/fs/smb/client/cifsfs.c\nindex 2025739f070a..0912d74e32de 100644\n--- a/fs/smb/client/cifsfs.c\n+++ b/fs/smb/client/cifsfs.c\n@@ -30,6 +30,7 @@\n #include <linux/xattr.h>\n #include <linux/mm.h>\n #include <linux/key-type.h>\n+#include <linux/fileattr.h>\n #include <uapi/linux/magic.h>\n #include <net/ipv6.h>\n #include \"cifsfs.h\"\n@@ -1199,6 +1200,44 @@ struct file_system_type smb3_fs_type = {\n MODULE_ALIAS_FS(\"smb3\");\n MODULE_ALIAS(\"smb3\");\n \n+int cifs_fileattr_get(struct dentry *dentry, struct file_kattr *fa)\n+{\n+\tstruct cifs_sb_info *cifs_sb = CIFS_SB(dentry->d_sb);\n+\tstruct cifs_tcon *tcon = cifs_sb_master_tcon(cifs_sb);\n+\tu32 attrs = le32_to_cpu(tcon->fsAttrInfo.Attributes);\n+\n+\t/* Preserve FS_COMPR_FL previously reported by cifs_ioctl(). */\n+\tif (CIFS_I(d_inode(dentry))->cifsAttrs & ATTR_COMPRESSED)\n+\t\tfa->flags |= FS_COMPR_FL;\n+\n+\t/*\n+\t * The server's FS_ATTRIBUTE_INFORMATION response, cached on\n+\t * the tcon at mount, reflects the share's case-handling\n+\t * semantics after any POSIX extensions negotiation. Prefer\n+\t * it over the client-local nocase mount option, which only\n+\t * governs dentry comparison on this superblock.\n+\t *\n+\t * QueryFSInfo is best-effort at mount; when it did not\n+\t * populate fsAttrInfo, MaxPathNameComponentLength remains\n+\t * zero. In that case fall back to nocase so the reporting\n+\t * matches the comparison behavior installed on the sb.\n+\t */\n+\tif (le32_to_cpu(tcon->fsAttrInfo.MaxPathNameComponentLength) == 0) {\n+\t\tif (tcon->nocase) {\n+\t\t\tfa->fsx_xflags |= FS_XFLAG_CASEFOLD;\n+\t\t\tfa->flags |= FS_CASEFOLD_FL;\n+\t\t}\n+\t\treturn 0;\n+\t}\n+\tif (!(attrs & FILE_CASE_SENSITIVE_SEARCH)) {\n+\t\tfa->fsx_xflags |= FS_XFLAG_CASEFOLD;\n+\t\tfa->flags |= FS_CASEFOLD_FL;\n+\t}\n+\tif (!(attrs & FILE_CASE_PRESERVED_NAMES))\n+\t\tfa->fsx_xflags |= FS_XFLAG_CASENONPRESERVING;\n+\treturn 0;\n+}\n+\n const struct inode_operations cifs_dir_inode_ops = {\n \t.create = cifs_create,\n \t.atomic_open = cifs_atomic_open,\n@@ -1217,6 +1256,7 @@ const struct inode_operations cifs_dir_inode_ops = {\n \t.listxattr = cifs_listxattr,\n \t.get_acl = cifs_get_acl,\n \t.set_acl = cifs_set_acl,\n+\t.fileattr_get = cifs_fileattr_get,\n };\n \n const struct inode_operations cifs_file_inode_ops = {\n@@ -1227,6 +1267,7 @@ const struct inode_operations cifs_file_inode_ops = {\n \t.fiemap = cifs_fiemap,\n \t.get_acl = cifs_get_acl,\n \t.set_acl = cifs_set_acl,\n+\t.fileattr_get = cifs_fileattr_get,\n };\n \n const char *cifs_get_link(struct dentry *dentry, struct inode *inode,\ndiff --git a/fs/smb/client/cifsfs.h b/fs/smb/client/cifsfs.h\nindex 7370b38da938..5f0d459d1a89 100644\n--- a/fs/smb/client/cifsfs.h\n+++ b/fs/smb/client/cifsfs.h\n@@ -89,6 +89,9 @@ extern const struct inode_operations cifs_file_inode_ops;\n extern const struct inode_operations cifs_symlink_inode_ops;\n extern const struct inode_operations cifs_namespace_inode_operations;\n \n+struct file_kattr;\n+int cifs_fileattr_get(struct dentry *dentry, struct file_kattr *fa);\n+\n \n /* Functions related to files and directories */\n extern const struct netfs_request_ops cifs_req_ops;\ndiff --git a/fs/smb/client/namespace.c b/fs/smb/client/namespace.c\nindex 52a520349cb7..52a51b032fae 100644\n--- a/fs/smb/client/namespace.c\n+++ b/fs/smb/client/namespace.c\n@@ -294,4 +294,5 @@ struct vfsmount *cifs_d_automount(struct path *path)\n }\n \n const struct inode_operations cifs_namespace_inode_operations = {\n+\t.fileattr_get\t= cifs_fileattr_get,\n };\n","prefixes":["v12","09/15"]}