[{"id":3681671,"web_url":"http://patchwork.ozlabs.org/comment/3681671/","msgid":"<CAH2r5mu1Wg_9tZCjei-xF357UjKR+h6jQr9zey39v59rx9quZQ@mail.gmail.com>","list_archive_url":null,"date":"2026-04-23T21:02:56","subject":"Re: [PATCH v10 10/17] cifs: Implement fileattr_get for case\n sensitivity","submitter":{"id":510,"url":"http://patchwork.ozlabs.org/api/people/510/","name":"Steve French","email":"smfrench@gmail.com"},"content":"Should this also be checking if the SMB3.1.1 Linux Extensions or SMB\nPOSIX Extensions are negotiated (ie the server supports case\nsensitivity)?\n\nOn Thu, Apr 23, 2026 at 8:20 AM Chuck Lever <cel@kernel.org> wrote:\n>\n> From: Chuck Lever <chuck.lever@oracle.com>\n>\n> Upper layers such as NFSD need a way to query whether a filesystem\n> handles filenames in a case-sensitive manner. Report CIFS/SMB case\n> handling behavior via the FS_XFLAG_CASEFOLD flag.\n>\n> CIFS servers (typically Windows or Samba) are usually case-insensitive\n> but case-preserving, meaning they ignore case during lookups but store\n> filenames exactly as provided.\n>\n> The implementation reports case sensitivity based on the nocase mount\n> option, which reflects whether the client expects the server to perform\n> case-insensitive comparisons. When nocase is set, the mount is reported\n> as case-insensitive.\n>\n> The callback is registered in all three inode_operations structures\n> (directory, file, and symlink) to ensure consistent reporting across\n> all inode types.\n>\n> Acked-by: Steve French <stfrench@microsoft.com>\n> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>\n> ---\n>  fs/smb/client/cifsfs.c | 20 ++++++++++++++++++++\n>  1 file changed, 20 insertions(+)\n>\n> diff --git a/fs/smb/client/cifsfs.c b/fs/smb/client/cifsfs.c\n> index 2025739f070a..9b70ffa3e01d 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,22 @@ struct file_system_type smb3_fs_type = {\n>  MODULE_ALIAS_FS(\"smb3\");\n>  MODULE_ALIAS(\"smb3\");\n>\n> +static int cifs_fileattr_get(struct dentry *dentry, struct file_kattr *fa)\n> +{\n> +       struct cifs_sb_info *cifs_sb = CIFS_SB(dentry->d_sb);\n> +       struct cifs_tcon *tcon = cifs_sb_master_tcon(cifs_sb);\n> +\n> +       /*\n> +        * The nocase mount option installs case-insensitive dentry\n> +        * operations on this superblock. SMB preserves case on the\n> +        * wire and at rest, so the mount matches FS_XFLAG_CASEFOLD\n> +        * semantics: case-folded lookup, verbatim storage.\n> +        */\n> +       if (tcon->nocase)\n> +               fa->fsx_xflags |= FS_XFLAG_CASEFOLD;\n> +       return 0;\n> +}\n> +\n>  const struct inode_operations cifs_dir_inode_ops = {\n>         .create = cifs_create,\n>         .atomic_open = cifs_atomic_open,\n> @@ -1217,6 +1234,7 @@ const struct inode_operations cifs_dir_inode_ops = {\n>         .listxattr = cifs_listxattr,\n>         .get_acl = cifs_get_acl,\n>         .set_acl = cifs_set_acl,\n> +       .fileattr_get = cifs_fileattr_get,\n>  };\n>\n>  const struct inode_operations cifs_file_inode_ops = {\n> @@ -1227,6 +1245,7 @@ const struct inode_operations cifs_file_inode_ops = {\n>         .fiemap = cifs_fiemap,\n>         .get_acl = cifs_get_acl,\n>         .set_acl = cifs_set_acl,\n> +       .fileattr_get = cifs_fileattr_get,\n>  };\n>\n>  const char *cifs_get_link(struct dentry *dentry, struct inode *inode,\n> @@ -1261,6 +1280,7 @@ const struct inode_operations cifs_symlink_inode_ops = {\n>         .setattr = cifs_setattr,\n>         .permission = cifs_permission,\n>         .listxattr = cifs_listxattr,\n> +       .fileattr_get = cifs_fileattr_get,\n>  };\n>\n>  /*\n>\n> --\n> 2.53.0\n>\n>","headers":{"Return-Path":"\n <SRS0=inbD=CW=vger.kernel.org=linux-ext4+bounces-16070-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=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=rDvAu1SN;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=ozlabs.org\n (client-ip=150.107.74.76; helo=mail.ozlabs.org;\n envelope-from=srs0=inbd=cw=vger.kernel.org=linux-ext4+bounces-16070-patchwork-incoming=ozlabs.org@ozlabs.org;\n receiver=patchwork.ozlabs.org)","gandalf.ozlabs.org;\n arc=pass smtp.remote-ip=\"2600:3c15:e001:75::12fc:5321\"\n arc.chain=\"subspace.kernel.org:google.com\"","gandalf.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com","gandalf.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=rDvAu1SN;\n\tdkim-atps=neutral","gandalf.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c15:e001:75::12fc:5321; helo=sin.lore.kernel.org;\n envelope-from=linux-ext4+bounces-16070-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com\n header.b=\"rDvAu1SN\"","smtp.subspace.kernel.org;\n arc=pass smtp.client-ip=209.85.219.50","smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=gmail.com"],"Received":["from mail.ozlabs.org (gandalf.ozlabs.org [150.107.74.76])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1 raw public key)\n server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g1pTj66VMz1yDD\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 07:03:20 +1000 (AEST)","from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\tby gandalf.ozlabs.org (Postfix) with ESMTP id 4g1pTh2Lqcz4wKq\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 07:03:20 +1000 (AEST)","by gandalf.ozlabs.org (Postfix)\n\tid 4g1pTh2GbQz4wHx; Fri, 24 Apr 2026 07:03:20 +1000 (AEST)","from sin.lore.kernel.org (sin.lore.kernel.org\n [IPv6:2600:3c15:e001:75::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest\n SHA256)\n\t(No client certificate requested)\n\tby gandalf.ozlabs.org (Postfix) with ESMTPS id 4g1pTc6bKwz4wKq\n\tfor <patchwork-incoming@ozlabs.org>; Fri, 24 Apr 2026 07:03:16 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sin.lore.kernel.org (Postfix) with ESMTP id C98323004622\n\tfor <patchwork-incoming@ozlabs.org>; Thu, 23 Apr 2026 21:03:14 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id DDFFD3537DE;\n\tThu, 23 Apr 2026 21:03:10 +0000 (UTC)","from mail-qv1-f50.google.com (mail-qv1-f50.google.com\n [209.85.219.50])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 200F034CFC6\n\tfor <linux-ext4@vger.kernel.org>; Thu, 23 Apr 2026 21:03:08 +0000 (UTC)","by mail-qv1-f50.google.com with SMTP id\n 6a1803df08f44-8acae26e564so81121286d6.2\n        for <linux-ext4@vger.kernel.org>;\n Thu, 23 Apr 2026 14:03:08 -0700 (PDT)"],"ARC-Seal":["i=3; a=rsa-sha256; d=ozlabs.org; s=201707; t=1776978200; cv=pass;\n\tb=easDNMbaxT1cttlzOmd5osg61M1ZRULXkotRzH7RGfq5BZGZNw4KV6tedoFBz90CE6YchQmghtgRkUwd5K0yXJbs5qQMmlEhD3IJALxfw/jIpfOv0dCOhI8WFBTM6s1O5071cPntj5a25ElpvKVjdOqzrC9iX01ch3qRU/bpURZT74bt0OCJTVqO8uoPuZB13d+YXm8BIz0yyKqc8quxHBZxf/IILbcyatj2PIB18x3eCULlUpieD9SRD3Wu4HCU7FL+mRfRMqfZ/7hp+/AeH0RCpusO/Tb9xVc+p9hPRLG8PJBCKYD4TCvrS53ZsvBz2yhG4VH2r+7O1h0eivp3dg==","i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776978190; cv=pass;\n b=Llj8AwpQpyY8vCPQ8bc9AhAtkVpBBr4fYGVtPap2kd8dClVAAD8Y7p/CoROEX18x1YlSufCULo24eh4XhcqA4Mn1fZJTWfKt7/JZcD1cZ2Dw/7Jtl28pzSvWrVgEqXUT2cgOwDbRXbzqyCz8spsMFj4E0abCQedWMVomhjzfFbg=","i=1; a=rsa-sha256; t=1776978188; cv=none;\n        d=google.com; s=arc-20240605;\n        b=WjM+AwK5Iu8ePdnu7lyqb/ilDKxYkmC7A7V55wg0Mc1OaXmwdEWqxHhGfprxfhCUsJ\n         nYpYYGYUEnIT47sdaRSC/xIPu7UWvO9WaaTiwU64n0580WJ3csS5NrwUZKJhe6mJuLXn\n         x0mONqtBTjxollkX+lXEybBSoOIUzvBaQ90HSEjJBV5Poz6U7rjNRto6Dhs1YdpiYNTp\n         qYRLztysN6Xb3SecaaOLeoASQElALyLSz4DPbA0PyDu1Tje1DByIp3blkmWNE4hYcJ5X\n         LKqtDmo9fWBKudvyYiqdzdiGEjrzeMbTUdeR4phezjkBoT2dftOz8Bfq9yahB0WZc6JC\n         2Rhw=="],"ARC-Message-Signature":["i=3; a=rsa-sha256; d=ozlabs.org; s=201707;\n\tt=1776978200; c=relaxed/relaxed;\n\tbh=PB9D2kfgkJFOe3p8pXvyrrOYHUrSUtT15eUJWPkJgQk=;\n\th=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject:\n\t To:Cc:Content-Type;\n b=sUIUreR055ek+y5Psjb7OwMC/X8mHzUqeU4hLYddTfOy7dt8azQyHOps33Be52gQ68LyBnVUG93p+lvOtJ9TZepx6C5uc0D1kx9hU5rhyxmwb3fHNYTqjLPEf09kDxZFX8AIPq5nSzd8zH6yBNqim96KVCkxx9UAUhV6xXrugWf3Nqrf2bktz1ywc+ldLiBsf28MZ4ebpvbf3adeP7LG4yup4CpAtA/1+PAzY8ZBfangpP6FIP4wfGwb4vBqY3TaYyD+BIEO4RBV3CxXecmFTy4UzkCdndu9eNuUnLXT2wUuXR4Xo6AI0hYTsrLAPWT/6V6z7nTSjkz4xqXsJZovJA==","i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776978190; c=relaxed/simple;\n\tbh=xhEH603J8v85yHWTGq8ZnN7Uus4HM3riSO2QoNgy+fs=;\n\th=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject:\n\t To:Cc:Content-Type;\n b=CoDCLAnOuvZ+VfsGq6MMrpuF4vBYp0fzwV4njV/seMf/ypdj07ZHHJuN3++GevtbtcVTWvZujh9diOb7goScUTRgcCkoynFy4nAByiNrHMctL2a2dM9BXP5UFXjnZ+m1+j4JGR3bEaPdghICUC6LGPewUj2q2e9mS+qoWQHxq8s=","i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n        h=content-transfer-encoding:cc:to:subject:message-id:date:from\n         :in-reply-to:references:mime-version:dkim-signature;\n        bh=PB9D2kfgkJFOe3p8pXvyrrOYHUrSUtT15eUJWPkJgQk=;\n        fh=dg9XuWDq2LGTfIq1/5nOeIDnuPZzr4y5r82V2La855k=;\n        b=jzswQRK2igUbv0MH2TVX7Z3lA4DhUzaN+lbrxYVcmw9+ZlmtIi2pT42XNN21aAnLNL\n         AoBvHwDV0fpR+7lEi2PRCCGoWdfhqscX9jXYjgSYNTtt3HEDth6Bnzp5Q8gmuCYZ5b/5\n         hqKn+UcL7ODWS0ucLfC986yVZNuwN8WVfSgT7zdbjQcaQjmVXOqeG7mkY0jP/oIKRUzy\n         4PmFfglUpTWPi9t3CKUK0L4YCo8jVCmn9kAkLq1SjfHdGAQE836Ql/ECuurFNJ4k2mwl\n         IOhkyjU5lvUvn/lysgRzESI91vDGVeOmBpxcTGszaJELDJYgYfWtloS4Y/6y59XSusmY\n         LfVQ==;\n        darn=vger.kernel.org"],"ARC-Authentication-Results":["i=3; gandalf.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com; dkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=rDvAu1SN; dkim-atps=neutral;\n spf=pass (client-ip=2600:3c15:e001:75::12fc:5321; helo=sin.lore.kernel.org;\n envelope-from=linux-ext4+bounces-16070-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org) smtp.mailfrom=vger.kernel.org","i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com;\n spf=pass smtp.mailfrom=gmail.com;\n dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com\n header.b=rDvAu1SN; arc=pass smtp.client-ip=209.85.219.50","i=1; mx.google.com; arc=none"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=gmail.com; s=20251104; t=1776978188; x=1777582988;\n darn=vger.kernel.org;\n        h=content-transfer-encoding:cc:to:subject:message-id:date:from\n         :in-reply-to:references:mime-version:from:to:cc:subject:date\n         :message-id:reply-to;\n        bh=PB9D2kfgkJFOe3p8pXvyrrOYHUrSUtT15eUJWPkJgQk=;\n        b=rDvAu1SNNCNFOtPGGZA1Ilm0Le5RC3HqJ0wXokdqmzOLVNi8lHw7GMMZu9w9TKLwL2\n         97WG5/8zvZHB8yvJKvWest8upLdKisDZ7H05Ka5/vdYNhsrnM3D9ri/hCBGJJWSYMJ6A\n         4aV5pN8ZpW+OvUAVyQXtCxyz+lKlPQ3JSP3K8P+ESur67eGHrRIzYUzsXwVHkCd6yj2/\n         ctzXdJjsBXDJTbKbibVy0FNHQzCBCqmL0wFBtBXUGYA9rjTxlgcuc+yyfB6WixhGhej1\n         k1hqtskE52BY3YNgHMeEYZ4kRq1QB4GqeTj/Zh+a80rccrsXdmSCnU6wEvXr81Y4Mp/o\n         /xVA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20251104; t=1776978188; x=1777582988;\n        h=content-transfer-encoding:cc:to:subject:message-id:date:from\n         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from\n         :to:cc:subject:date:message-id:reply-to;\n        bh=PB9D2kfgkJFOe3p8pXvyrrOYHUrSUtT15eUJWPkJgQk=;\n        b=JrhPo70t4QEuamPgRgdIVe2snYlDKejUdunwf07BVjjhYmdIfx4sLe6IfIYLhEEy59\n         Cr75MlEZIZt51mP4kpxrcGRQnd0+vqklKNNYT7eSXae0mHdOP3J0mtK+E30CF/SMTZEW\n         M5kw+SH2ZPOy/a/N5lZ3MW3whXWovDschVdfPA+L38urnGUauczg4oylnHpDsjtRJlfb\n         YHQweDfjVKcJA0Et32keLzL1zmoC4NMWT+KXXj9/7DdDh0wcEbX/79S1ltCN3YHqCpRN\n         tncon/v4F/FhlhrH+brXoGEyFebPN1UIgG0BSpx9JXHQlQ95BWXEenMqFKh1dFLUerSR\n         2jDw==","X-Forwarded-Encrypted":"i=1;\n AFNElJ8eOea5K4+IpKN4j0JT4KOrL4OQW9NFI1NgTif9yEgCJ9UTSfBgoZt/yjWS3HhF0X50kQtYu5md/JUD@vger.kernel.org","X-Gm-Message-State":"AOJu0Yy5FfRry6XIP4Ow3bfVUPHLiLU4fYsck/MRois/eTs2eCukM/AU\n\tzHFFsdx8QXW8RK44NUriTG+tgyJy2yvXzNEb+VxzJQKtXjjrZcC0tTWTsmukmdC7oqs+DKiE0wV\n\tgA73K6dtHZp/DQz6kmBtCKmkhSyUTEyk=","X-Gm-Gg":"AeBDieuyB9w2lT04BYW8c8+NPa/I1QXnXUN4ztk5KtH55zBx29CgXLLud622beNstbf\n\tRZYN0r45o+xdl9WfzIv6Mci64ytDAc6P3DwLBR9yWSw0wXgjZFTy3UWORb1n+DjL62cjjFKy3Ch\n\tYI6whE5N2FZFlJv74A+NHD8R1qRs4g+he50/jawgLGi1RAaTUbBqkKl9Q31kcX69Nqa679XgihR\n\t0WkYIYve2OLDIYIMqY0Hy7+N/R2xqnCvyNb84LYTpOQVqPXFi145NVoyDBrdGsm5MLXD5+QwQTj\n\tVUzaeyB+qMKOXwg5/+bFps9txrVcZZcnXgiOQPVe7SctorD90afKUePmq14tNDguTT7M5U/dTco\n\tQdPSkGjNuq/MZuW70vtu6iOOOqtwq3GDd0y+GYekpXymio26NzoqXAUX/o8PBKjjTn5UAFhlqgR\n\tDYw/g8oasUJ8jGG7qCbyYjHEr9GTRi5L8=","X-Received":"by 2002:ad4:5d65:0:b0:8ae:6282:df2e with SMTP id\n 6a1803df08f44-8b02822456emr461252066d6.44.1776978187970; Thu, 23 Apr 2026\n 14:03:07 -0700 (PDT)","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","References":"<20260423-case-sensitivity-v10-0-c385d674a6cf@oracle.com>\n <20260423-case-sensitivity-v10-10-c385d674a6cf@oracle.com>","In-Reply-To":"<20260423-case-sensitivity-v10-10-c385d674a6cf@oracle.com>","From":"Steve French <smfrench@gmail.com>","Date":"Thu, 23 Apr 2026 16:02:56 -0500","X-Gm-Features":"AQROBzDF43-id-Qgk6rRbL0HPyUPTg1w8GYo4-J0uBb2d6IfD5ElWAtE-TtbFxA","Message-ID":"\n <CAH2r5mu1Wg_9tZCjei-xF357UjKR+h6jQr9zey39v59rx9quZQ@mail.gmail.com>","Subject":"Re: [PATCH v10 10/17] cifs: Implement fileattr_get for case\n sensitivity","To":"Chuck Lever <cel@kernel.org>","Cc":"Al Viro <viro@zeniv.linux.org.uk>, Christian Brauner <brauner@kernel.org>,\n Jan Kara <jack@suse.cz>,\n\tlinux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org,\n\tlinux-xfs@vger.kernel.org, linux-cifs@vger.kernel.org,\n\tlinux-nfs@vger.kernel.org, linux-api@vger.kernel.org,\n\tlinux-f2fs-devel@lists.sourceforge.net, hirofumi@mail.parknet.co.jp,\n\tlinkinjeon@kernel.org, sj1557.seo@samsung.com, yuezhang.mo@sony.com,\n\talmaz.alexandrovich@paragon-software.com, slava@dubeyko.com,\n\tglaubitz@physik.fu-berlin.de, frank.li@vivo.com, tytso@mit.edu,\n\tadilger.kernel@dilger.ca, cem@kernel.org, sfrench@samba.org,\n pc@manguebit.org,\n\tronniesahlberg@gmail.com, sprasad@microsoft.com, trondmy@kernel.org,\n\tanna@kernel.org, jaegeuk@kernel.org, chao@kernel.org, hansg@kernel.org,\n\tsenozhatsky@chromium.org, Chuck Lever <chuck.lever@oracle.com>,\n\tSteve French <stfrench@microsoft.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","X-Spam-Status":"No, score=-0.2 required=5.0 tests=ARC_SIGNED,ARC_VALID,\n\tDKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DMARC_PASS,FORGED_GMAIL_RCVD,\n\tFREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,\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"}}]