[{"id":3676100,"web_url":"http://patchwork.ozlabs.org/comment/3676100/","msgid":"<CAH2r5mvGYy9i8mPoWZah2kpv=98xaSFATsn1xbpihUa_RuhLEQ@mail.gmail.com>","list_archive_url":null,"date":"2026-04-11T01:19:48","subject":"Re: [PATCH] smb: client: get rid of d_drop()+d_add()","submitter":{"id":510,"url":"http://patchwork.ozlabs.org/api/people/510/","name":"Steve French","email":"smfrench@gmail.com"},"content":"added to cifs-2.6.git for-next\n\nOn Fri, Apr 10, 2026 at 6:20 PM Paulo Alcantara <pc@manguebit.org> wrote:\n>\n> Replace d_drop()+d_add() in cifs_tmpfile() and cifs_create() with\n> d_instantiate(), and in cifs_atomic_open() with d_splice_alias() if\n> in-lookup, otherwise d_instantiate().\n>\n> Reported-by: Al Viro <viro@zeniv.linux.org.uk>\n> Closes: https://lore.kernel.org/r/20260408065719.GF3836593@ZenIV\n> Signed-off-by: Paulo Alcantara (Red Hat) <pc@manguebit.org>\n> Cc: David Howells <dhowells@redhat.com>\n> Cc: NeilBrown <neilb@ownmail.net>\n> Cc: linux-fsdevel@vger.kernel.org\n> Cc: linux-cifs@vger.kernel.org\n> ---\n>  fs/smb/client/cifsfs.h |  4 +--\n>  fs/smb/client/dir.c    | 62 ++++++++++++++++++++++++++----------------\n>  2 files changed, 40 insertions(+), 26 deletions(-)\n>\n> diff --git a/fs/smb/client/cifsfs.h b/fs/smb/client/cifsfs.h\n> index 64c7a4c6ac83..18f9f93a01b4 100644\n> --- a/fs/smb/client/cifsfs.h\n> +++ b/fs/smb/client/cifsfs.h\n> @@ -52,9 +52,9 @@ void cifs_sb_deactive(struct super_block *sb);\n>  /* Functions related to inodes */\n>  extern const struct inode_operations cifs_dir_inode_ops;\n>  struct inode *cifs_root_iget(struct super_block *sb);\n> -int cifs_create(struct mnt_idmap *idmap, struct inode *inode,\n> +int cifs_create(struct mnt_idmap *idmap, struct inode *dir,\n>                 struct dentry *direntry, umode_t mode, bool excl);\n> -int cifs_atomic_open(struct inode *inode, struct dentry *direntry,\n> +int cifs_atomic_open(struct inode *dir, struct dentry *direntry,\n>                      struct file *file, unsigned int oflags, umode_t mode);\n>  int cifs_tmpfile(struct mnt_idmap *idmap, struct inode *dir,\n>                  struct file *file, umode_t mode);\n> diff --git a/fs/smb/client/dir.c b/fs/smb/client/dir.c\n> index bfc887d506b6..6ea1ae7f7a46 100644\n> --- a/fs/smb/client/dir.c\n> +++ b/fs/smb/client/dir.c\n> @@ -219,6 +219,7 @@ static int __cifs_do_create(struct inode *dir, struct dentry *direntry,\n>         int rdwr_for_fscache = 0;\n>         __le32 lease_flags = 0;\n>\n> +       *inode = NULL;\n>         *oplock = 0;\n>         if (tcon->ses->server->oplocks)\n>                 *oplock = REQ_OPLOCK;\n> @@ -462,7 +463,6 @@ static int __cifs_do_create(struct inode *dir, struct dentry *direntry,\n>                 goto out_err;\n>         }\n>\n> -       d_drop(direntry);\n>         *inode = newinode;\n>         return rc;\n>\n> @@ -478,11 +478,11 @@ static int cifs_do_create(struct inode *dir, struct dentry *direntry,\n>                           unsigned int xid, struct tcon_link *tlink,\n>                           unsigned int oflags, umode_t mode,\n>                           __u32 *oplock, struct cifs_fid *fid,\n> -                         struct cifs_open_info_data *buf)\n> +                         struct cifs_open_info_data *buf,\n> +                         struct inode **inode)\n>  {\n>         void *page = alloc_dentry_path();\n>         const char *full_path;\n> -       struct inode *inode;\n>         int rc;\n>\n>         full_path = build_path_from_dentry(direntry, page);\n> @@ -491,9 +491,7 @@ static int cifs_do_create(struct inode *dir, struct dentry *direntry,\n>         } else {\n>                 rc = __cifs_do_create(dir, direntry, full_path, xid,\n>                                       tlink, oflags, mode, oplock,\n> -                                     fid, buf, &inode);\n> -               if (!rc)\n> -                       d_add(direntry, inode);\n> +                                     fid, buf, inode);\n>         }\n>         free_dentry_path(page);\n>         return rc;\n> @@ -504,13 +502,13 @@ static int cifs_do_create(struct inode *dir, struct dentry *direntry,\n>   * Look up, create and open a CIFS file.\n>   *\n>   * The initial dentry state is in-lookup or hashed-negative.  On success, dentry\n> - * will become hashed-positive by calling d_drop() & d_add(), respectively.\n> + * will become hashed-positive by calling d_splice_alias() if in-lookup,\n> + * otherwise d_instantiate().\n>   */\n> -int\n> -cifs_atomic_open(struct inode *inode, struct dentry *direntry,\n> -                struct file *file, unsigned int oflags, umode_t mode)\n> +int cifs_atomic_open(struct inode *dir, struct dentry *direntry,\n> +                    struct file *file, unsigned int oflags, umode_t mode)\n>  {\n> -       struct cifs_sb_info *cifs_sb = CIFS_SB(inode);\n> +       struct cifs_sb_info *cifs_sb = CIFS_SB(dir);\n>         struct cifs_open_info_data buf = {};\n>         struct TCP_Server_Info *server;\n>         struct cifsFileInfo *file_info;\n> @@ -519,6 +517,8 @@ cifs_atomic_open(struct inode *inode, struct dentry *direntry,\n>         struct tcon_link *tlink;\n>         struct cifs_tcon *tcon;\n>         unsigned int sbflags;\n> +       struct dentry *alias;\n> +       struct inode *inode;\n>         unsigned int xid;\n>         __u32 oplock;\n>         int rc;\n> @@ -545,13 +545,13 @@ cifs_atomic_open(struct inode *inode, struct dentry *direntry,\n>                 if (!d_in_lookup(direntry))\n>                         return -ENOENT;\n>\n> -               return finish_no_open(file, cifs_lookup(inode, direntry, 0));\n> +               return finish_no_open(file, cifs_lookup(dir, direntry, 0));\n>         }\n>\n>         xid = get_xid();\n>\n>         cifs_dbg(FYI, \"parent inode = 0x%p name is: %pd and dentry = 0x%p\\n\",\n> -                inode, direntry, direntry);\n> +                dir, direntry, direntry);\n>\n>         tlink = cifs_sb_tlink(cifs_sb);\n>         if (IS_ERR(tlink)) {\n> @@ -572,13 +572,21 @@ cifs_atomic_open(struct inode *inode, struct dentry *direntry,\n>\n>         cifs_add_pending_open(&fid, tlink, &open);\n>\n> -       rc = cifs_do_create(inode, direntry, xid, tlink, oflags, mode,\n> -                           &oplock, &fid, &buf);\n> +       rc = cifs_do_create(dir, direntry, xid, tlink, oflags, mode,\n> +                           &oplock, &fid, &buf, &inode);\n>         if (rc) {\n>                 cifs_del_pending_open(&open);\n>                 goto out;\n>         }\n>\n> +       if (d_in_lookup(direntry)) {\n> +               alias = d_splice_alias(inode, direntry);\n> +               if (!IS_ERR_OR_NULL(alias))\n> +                       direntry = alias;\n> +       } else {\n> +               d_instantiate(direntry, inode);\n> +       }\n> +\n>         if ((oflags & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL))\n>                 file->f_mode |= FMODE_CREATED;\n>\n> @@ -622,11 +630,12 @@ cifs_atomic_open(struct inode *inode, struct dentry *direntry,\n>   * Create a CIFS file.\n>   *\n>   * The initial dentry state is hashed-negative.  On success, dentry will become\n> - * hashed-positive by calling d_drop() & d_add(), respectively.\n> + * hashed-positive by calling d_instantiate().\n>   */\n> -int cifs_create(struct mnt_idmap *idmap, struct inode *inode,\n> +int cifs_create(struct mnt_idmap *idmap, struct inode *dir,\n>                 struct dentry *direntry, umode_t mode, bool excl)\n>  {\n> +       struct cifs_sb_info *cifs_sb = CIFS_SB(dir);\n>         int rc;\n>         unsigned int xid = get_xid();\n>         /*\n> @@ -640,19 +649,20 @@ int cifs_create(struct mnt_idmap *idmap, struct inode *inode,\n>         struct tcon_link *tlink;\n>         struct cifs_tcon *tcon;\n>         struct TCP_Server_Info *server;\n> +       struct inode *inode;\n>         struct cifs_fid fid;\n>         __u32 oplock;\n>         struct cifs_open_info_data buf = {};\n>\n>         cifs_dbg(FYI, \"cifs_create parent inode = 0x%p name is: %pd and dentry = 0x%p\\n\",\n> -                inode, direntry, direntry);\n> +                dir, direntry, direntry);\n>\n> -       if (unlikely(cifs_forced_shutdown(CIFS_SB(inode->i_sb)))) {\n> +       if (unlikely(cifs_forced_shutdown(cifs_sb))) {\n>                 rc = smb_EIO(smb_eio_trace_forced_shutdown);\n>                 goto out_free_xid;\n>         }\n>\n> -       tlink = cifs_sb_tlink(CIFS_SB(inode->i_sb));\n> +       tlink = cifs_sb_tlink(cifs_sb);\n>         rc = PTR_ERR(tlink);\n>         if (IS_ERR(tlink))\n>                 goto out_free_xid;\n> @@ -663,9 +673,13 @@ int cifs_create(struct mnt_idmap *idmap, struct inode *inode,\n>         if (server->ops->new_lease_key)\n>                 server->ops->new_lease_key(&fid);\n>\n> -       rc = cifs_do_create(inode, direntry, xid, tlink, oflags, mode, &oplock, &fid, &buf);\n> -       if (!rc && server->ops->close)\n> -               server->ops->close(xid, tcon, &fid);\n> +       rc = cifs_do_create(dir, direntry, xid, tlink, oflags,\n> +                           mode, &oplock, &fid, &buf, &inode);\n> +       if (!rc) {\n> +               d_instantiate(direntry, inode);\n> +               if (server->ops->close)\n> +                       server->ops->close(xid, tcon, &fid);\n> +       }\n>\n>         cifs_free_open_info(&buf);\n>         cifs_put_tlink(tlink);\n> @@ -1035,7 +1049,7 @@ static int set_tmpfile_attr(const unsigned int xid, unsigned int oflags,\n>   * Create a hidden temporary CIFS file with delete-on-close bit set.\n>   *\n>   * The initial dentry state is unhashed-negative.  On success, dentry will\n> - * become unhashed-positive by calling d_drop() & d_instantiate(), respectively.\n> + * become unhashed-positive by calling d_instantiate().\n>   */\n>  int cifs_tmpfile(struct mnt_idmap *idmap, struct inode *dir,\n>                  struct file *file, umode_t mode)\n> --\n> 2.53.0\n>","headers":{"Return-Path":"\n <linux-cifs+bounces-10757-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-cifs@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.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=ScjNDfg2;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-cifs+bounces-10757-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com\n header.b=\"ScjNDfg2\"","smtp.subspace.kernel.org;\n arc=pass smtp.client-ip=209.85.219.54","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 sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fswqL47tNz1yGb\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 11 Apr 2026 11:21:18 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 293ED30342BA\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 11 Apr 2026 01:20:05 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 7CABF19ADA4;\n\tSat, 11 Apr 2026 01:20:04 +0000 (UTC)","from mail-qv1-f54.google.com (mail-qv1-f54.google.com\n [209.85.219.54])\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 D8BAE9475\n\tfor <linux-cifs@vger.kernel.org>; Sat, 11 Apr 2026 01:20:02 +0000 (UTC)","by mail-qv1-f54.google.com with SMTP id\n 6a1803df08f44-89fc4147f2eso30986276d6.3\n        for <linux-cifs@vger.kernel.org>;\n Fri, 10 Apr 2026 18:20:02 -0700 (PDT)"],"ARC-Seal":["i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775870404; cv=pass;\n b=be9rxmshMZjukqkEjQumaevx+TiOfBR0ko6Cc8GqJF6uHD/bLw0tDnMbVgmKmjirt9bKDmyBTZQKv0dXIzo8NF9crlcG860aZnkt5LN67+jpYZ6wAxW+DEbzFkPvQkFYAv923PTcWk3BI8Xgjt19rmyP2kUCmrCFNs43Szp8XqM=","i=1; a=rsa-sha256; t=1775870402; cv=none;\n        d=google.com; s=arc-20240605;\n        b=AHI2OOgVvI9fT8uP7+TaIFqAQ7bhV4W5OUvJo4vfshiXHH1q0rK/kizIvsYPODkDCW\n         +Z0VenxMtE5A5qM5OybOMtIJyFmNb3AFBID3TyKx0401IeIEFjlZN1oDf2/TsaJAE7dp\n         TofKoqSSxPbWBIrkQrF01+6h/0iWePyI5353fxRkzVA/rUlPFYZ9nmhb794y8h3lNDej\n         LbuzUfI7WeNcS9d+rcmrIyKK/jpA8icqLPQF9SSdu0gPq1lstpVu4uP9MPxk0GcVuQDg\n         9vkag1zGrqzSKEW5HssgQRNXVljY0iPuQ9O99uxG/fqUiN9Zx0IulNbv4IbjNxgWkxz5\n         wOQA=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775870404; c=relaxed/simple;\n\tbh=22rFAgDqVDG50ejhrpQv4hJWXdghfRkmLipndupE0ss=;\n\th=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject:\n\t To:Cc:Content-Type;\n b=Hcj2sMCTFKP/jDsgxPV4Zkn0jMtBATiqIV+IVkCUkn85wLHyKqo/Y0seLYsquUWmT9M0Q4OB1BvPxUxqWGOTh2bDPLBSyoYzZnuMFK5jO8atH8c/Dpx6MlEoIiKwlaORBHubpnmbNVUl7bAChPwoRQH/4/V6ZzghGmNWudnxFYQ=","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=BoYCXVPyh3KeQurt9+gDQolsDYN//x6FIjC2f2/YJk8=;\n        fh=zeoA/GWtRpxsc3E8KiFMbtUyA14sDCAHCM2/Yi/44io=;\n        b=CAV8BrqARpe0VPDTJ7LikCPs92Sj2U+q62wbf6H80r9hIGr1dx5rd5EWSY6D3caNJN\n         Ig4w4nHzk/WjK2nNMjO0lAsAgjTjPl72Qm/0kQsnazBp5KkiudC0j64sjaoLGTbsUctr\n         4ZU6hQbIH3oAmbKn9onqG1wsQrajND/cqJYQmLwra4E2Hkxiv1GdmrGZEn5Qk5sEWjyQ\n         aWULrAv9zehaDrI/rg2b8kD/tS//ioMGwfNvEEBkcCikkZFql8MkJj+sSX0SYKHDkIIE\n         Vqrk3zwSiYmNPWtYgY5WUc9nxGnvRbu2bPcRd04H9rsU9PZz14Ze9gO9SHAe74NuXYrI\n         Vncg==;\n        darn=vger.kernel.org"],"ARC-Authentication-Results":["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=ScjNDfg2; arc=pass smtp.client-ip=209.85.219.54","i=1; mx.google.com; arc=none"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=gmail.com; s=20251104; t=1775870402; x=1776475202;\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=BoYCXVPyh3KeQurt9+gDQolsDYN//x6FIjC2f2/YJk8=;\n        b=ScjNDfg2TXABRaqGnDRC5kscf5XlZrZDDxXgggkuofrKbXAmRK12PimPCCb0AfctQM\n         i7mt73HHyHlHwMkqr6DyrCUXN1t2Eswey3LrsmDTG1XD4LastO6Qvi61igjD3b6lwtbx\n         9oBDGxibAilVcZFVXzBYOLLrqLAk76wfPEiQCJ+wr3Wjvackm4FcrriC0o9qqUM1vsLk\n         wNno9gsrX55vN8ulgd5luh/j7brHMfBQeHPteZOyeXRX1PzTz4WnLnl9zuWwXNN0pAgq\n         OYarNgXVrpgIXTq15mWaiaOeCgHy8QjcGLUidTiuCEhc0j+C5B1WncsAgZNGp2KOysYy\n         eEfA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20251104; t=1775870402; x=1776475202;\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=BoYCXVPyh3KeQurt9+gDQolsDYN//x6FIjC2f2/YJk8=;\n        b=Acxfjzh+izRFIqfvVE2UJy2+vk5qTBL4DLFl6KiP4orRskCJaDKSyefNpuUvhOLFBP\n         Lv0kRu3TvEBbrdMLGs5opFWWDiJPgYFQAIJiP+XHGJzjiOnBBsimq6wMfWiEymjAIEV4\n         MleYHSAMYkmQl70BcjQ8WpWRQltTilqx25Q/1OxAjsnWTZizwOMi853h7bciYjxApSoQ\n         LFQKqUe6eG+zTnssseRceA+rSvNuWd2je6JTUn3urj6xvVOtpDF2yvp272hhkMD8KV6W\n         +PoplLX9HLqJW9ayE9vHp9g0NQf/A1Jym3+FH14IKI/uDsNo1OH5fdy/9eQfRmOuZwSL\n         R/vw==","X-Forwarded-Encrypted":"i=1;\n AJvYcCU2OKdqyQHSHj4MsGcUn8NbP52GknpdU1pqaoJLgyPfNIlz92anNWS+SeIaAOQk1qXVHzbR/N4Ly5BL@vger.kernel.org","X-Gm-Message-State":"AOJu0YxQnTB11fhBDmtOZvJ0wmBQeVSFa+vRT9TqE+FeAs2Ga5tf5eD2\n\tAbzWaXhg8dDnHaYAwiiRl05uzlqpgM0tZeNDNB+MX8cPYWa7TyyHw5pKQSj9UkuD+TIv+K3dd9i\n\tWnFmG3qlYNBPk8/+RT0cW6ewax44OEyg=","X-Gm-Gg":"AeBDiesLQKPAlizIgSHpz5uQzRaJFYzke5/r+Cb9yIHxp/cpTOdR9HYPYoGxGs+KTJm\n\tqkI6uE4CLAFGXT1i8CaCkEjF+QjVeQCpvHvOATlNSOzi3LuuGseujg2z9bOyWTaOCGlOm/enONE\n\tebswnX/b0ISS5kgdoJZm1XeJ+qI/KbVw/x0QyQaqColuXhftVke3W0TdM7nYBL2g/Yns6qQW0wa\n\tCEgv1Wxe7FXXR3y2l5d2OEE+RTRB+eNj+wbJopCvRRLavUKuzUHHnXCtptDutusqmQPyuJr7zME\n\tEAFGnQpKFBWRmH++eLSsrpAZrIUzWrzFn2oRRemA1d/2/1hCJsXe0uar2BxfY2oSKdSmsj8je2A\n\tzCQnh0QuGpgtQLgBskdPr1haIL5w/dgklBBCaD4ggh75evjektj6fjOtqJM63XoBQ9e44I5kBgk\n\tYikoKBbWM9Va9Y4hYRoKKDEQ==","X-Received":"by 2002:a05:6214:3f81:b0:895:48c2:aedc with SMTP id\n 6a1803df08f44-8ac862aaea0mr85807826d6.39.1775870401696; Fri, 10 Apr 2026\n 18:20:01 -0700 (PDT)","Precedence":"bulk","X-Mailing-List":"linux-cifs@vger.kernel.org","List-Id":"<linux-cifs.vger.kernel.org>","List-Subscribe":"<mailto:linux-cifs+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-cifs+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","References":"<20260410232055.1582463-1-pc@manguebit.org>","In-Reply-To":"<20260410232055.1582463-1-pc@manguebit.org>","From":"Steve French <smfrench@gmail.com>","Date":"Fri, 10 Apr 2026 20:19:48 -0500","X-Gm-Features":"AQROBzARoYM-u0fR89e2CVNtSwAzLVKiCkVB8reyFtV35u3oyT1bDy_YUe9_JXA","Message-ID":"\n <CAH2r5mvGYy9i8mPoWZah2kpv=98xaSFATsn1xbpihUa_RuhLEQ@mail.gmail.com>","Subject":"Re: [PATCH] smb: client: get rid of d_drop()+d_add()","To":"Paulo Alcantara <pc@manguebit.org>","Cc":"Al Viro <viro@zeniv.linux.org.uk>, David Howells <dhowells@redhat.com>,\n\tNeilBrown <neilb@ownmail.net>, linux-fsdevel@vger.kernel.org,\n\tlinux-cifs@vger.kernel.org","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable"}}]