Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp1782262rwb; Thu, 17 Nov 2022 01:46:19 -0800 (PST) X-Google-Smtp-Source: AA0mqf65lDdHRgAjpNW1hM+yHbjC+xujAhcoAE34NQJLDIkNzXwSBanZyZObe7sV7xYp2oetshlK X-Received: by 2002:a05:6402:1802:b0:461:72cb:e5d with SMTP id g2-20020a056402180200b0046172cb0e5dmr1417691edy.410.1668678379687; Thu, 17 Nov 2022 01:46:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668678379; cv=none; d=google.com; s=arc-20160816; b=om0tV6gztmucdFkGOnAm24T3DouD0STZgCBwZqDlpOsw+4vScphQZex2wfMEu/99wK fTRtZINBNrqpRY2AjER0i3S9A8a33TW1qvrJnYQUWtBKj6u3YsE0H2WX9jI4YG28VwiV 8MZAO//UU+vKEpZx23SpeaPg8+auzkfgn/ceLTQOPfnC0Bk/LkcbybqemY9i/4Lr4Gdu Tn5yj+pgW2EoQf9qHsLaTkX9+86e7tETqdEzsvTKsFIwKgFW6EtqIpq+YYrRJ+IjF858 qSliSbICpRhWHNpzC9pBuY3M30dNZE9zWqgbV4X1tmgJ5AYorMFrboDbRm9ONg39vxYf 2EDg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=u5ZdxqLv7HQK8nNoE6HlHV0fkVi/45Uuow/P2MWmtkU=; b=rRAdCDqTiXMmIDNiXzmAY3YxdxWzaDlGuviy2pksel8knVjVeHmPlfut3rsFzlj4JV 7J7Xcpveb3DqDExRpB1xaFOuE8BQwqVvqza9JDwgyB01afhNgQzzjCuJctAsyrjrTU86 Q5PQLxdFjrgN838ATj6/WTCORlTaAGUub3ItHgVMg9cPq6edqn2ZEx4nFQHz4sCNVbr9 qy+aXGgqQkBIvaC3VAGLXuCALhRaBxrjKom1eQNsUi6PSHsLubHwsJ7iN4edvzUqf/PN 7A6lMHKWp+bhSQpv4Yu2fVlV6eeJsC3DEZhPcCkq2k1sCKam4hxrETIXkPhB0x7Huwgv 6+hw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@bytedance-com.20210112.gappssmtp.com header.s=20210112 header.b=GA0th6H1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=bytedance.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q28-20020a056402249c00b00463f8aad371si469705eda.239.2022.11.17.01.45.58; Thu, 17 Nov 2022 01:46:19 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@bytedance-com.20210112.gappssmtp.com header.s=20210112 header.b=GA0th6H1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=bytedance.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239727AbiKQIw4 (ORCPT + 92 others); Thu, 17 Nov 2022 03:52:56 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52316 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239559AbiKQIwn (ORCPT ); Thu, 17 Nov 2022 03:52:43 -0500 Received: from mail-pg1-x52d.google.com (mail-pg1-x52d.google.com [IPv6:2607:f8b0:4864:20::52d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B048C6829F for ; Thu, 17 Nov 2022 00:52:41 -0800 (PST) Received: by mail-pg1-x52d.google.com with SMTP id 6so1400175pgm.6 for ; Thu, 17 Nov 2022 00:52:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance-com.20210112.gappssmtp.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=u5ZdxqLv7HQK8nNoE6HlHV0fkVi/45Uuow/P2MWmtkU=; b=GA0th6H11AE4Gyblch3W3Oi6D5GxbxQNCi6AUntl5IjE0xb/EOYYyC19tmK4OoAnEA 9RUt2JnkVW3qjVjlHFwRBHwwS7zsNNFAbgcoAu1ayPZl6qvTG2LayGqcu/sSWBsBox6E Xv6RzNZMXeihMUTKjMwaqyyeA0S7iTCpaQyAqaz3gDS6hiI/GihS/VfVhLFDsjQodkFm EWb4Ikk40HtbbResvvhQfe6CdlMlsiKGTej/DEPl+yUP/HOdpP04g4AtvY3qlCzKCwrW DSTphIC1/xHyIR44zcquSVUelaH/Z9QubvLxg/GTF4zDcpbOyB/sFJjsQF++EUwbIUyw YuZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=u5ZdxqLv7HQK8nNoE6HlHV0fkVi/45Uuow/P2MWmtkU=; b=ssk/Gvjp00tzImnnclyW0TKjGorHqAPhjc7QcM7CLr0NSBLD43scCz5xrmK71lDH9C hymBPk0YCKCFAcaL9g5BP/7mEr48Gkk5iN0gzlue7vyKEX150HJdThbVPBnzhredRSU8 Sxb5+L0F3XX2FUvCxH4xPDlYkWVCEak0bBT14N0wkNWQrtyBxecY7oQKsZPx8p7EG6Uc m2pSOC9hNj8P2bphpsx3EqKuNU4+lURfLZeTlEfMEZjgTHnLr+Y31TtoOJUnZFvXj3Tt uZlXPStTxZV37VcMVi8fo9gSeKRPmEUmcj+ICUt1Zcq3bCSjgAAW7UbyyB7lXMDojBDU 1sgQ== X-Gm-Message-State: ANoB5pkzLoOOsPNbIjy+tNVgbxVp3JQhRAuTkfw3V/b8PLmw9SyHp8zz 0ru+05nOPEWbIwk7EBIDOGDSRP2CW/t50+J/5MwKJrUMx9KriQ== X-Received: by 2002:a05:6a00:c5:b0:56b:a4f6:e030 with SMTP id e5-20020a056a0000c500b0056ba4f6e030mr1977961pfj.85.1668675161134; Thu, 17 Nov 2022 00:52:41 -0800 (PST) MIME-Version: 1.0 References: <20221111093702.80975-1-zhangjiachen.jaycee@bytedance.com> In-Reply-To: <20221111093702.80975-1-zhangjiachen.jaycee@bytedance.com> From: Jiachen Zhang Date: Thu, 17 Nov 2022 16:52:29 +0800 Message-ID: Subject: Re: [PATCH] fuse: initialize attr_version of new fuse inodes by fc->attr_version To: Miklos Szeredi Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Nov 11, 2022 at 5:37 PM Jiachen Zhang wrote: > > The FUSE_READDIRPLUS request reply handler fuse_direntplus_link() might > call fuse_iget() to initialize a new fuse_inode and change its attributes. > But as the new fi->attr_version is always initialized with 0, even if the > attr_version of the FUSE_READDIRPLUS request has become staled, staled attr > may still be set to the new fuse_inode. This may cause file size > inconsistency even when a filesystem backend is mounted with a single FUSE > mountpoint. > > This commit fixes the issue by initializing new fuse_inode attr_versions by > the global fc->attr_version. This may introduce more FUSE_GETATTR but can > avoid weird attributes rollback being seen by users. > > Fixes: 19332138887c ("fuse: initialize attr_version of new fuse inodes by fc->attr_version") Ping..., and the Fixes tag should be: Fixes: fbee36b92abc ("fuse: fix uninitialized field in fuse_inode") Best regards, Jiachen > Signed-off-by: Jiachen Zhang > --- > fs/fuse/inode.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c > index 6b3beda16c1b..145ded6b55af 100644 > --- a/fs/fuse/inode.c > +++ b/fs/fuse/inode.c > @@ -71,6 +71,7 @@ struct fuse_forget_link *fuse_alloc_forget(void) > static struct inode *fuse_alloc_inode(struct super_block *sb) > { > struct fuse_inode *fi; > + struct fuse_conn *fc = get_fuse_conn_super(sb); > > fi = alloc_inode_sb(sb, fuse_inode_cachep, GFP_KERNEL); > if (!fi) > @@ -80,7 +81,7 @@ static struct inode *fuse_alloc_inode(struct super_block *sb) > fi->inval_mask = 0; > fi->nodeid = 0; > fi->nlookup = 0; > - fi->attr_version = 0; > + fi->attr_version = fuse_get_attr_version(fc); > fi->orig_ino = 0; > fi->state = 0; > mutex_init(&fi->mutex); > -- > 2.20.1 >