Received: by 2002:a05:6358:e9c4:b0:b2:91dc:71ab with SMTP id hc4csp4654860rwb; Mon, 8 Aug 2022 05:06:28 -0700 (PDT) X-Google-Smtp-Source: AA6agR5hArdi0VYopj0YBgQ6goG6YeHYEQZh1TI7zaPLKyd1+DRLual838KbDsj0QdyNiVIOvXQa X-Received: by 2002:a63:4d18:0:b0:41d:2c8c:1d8 with SMTP id a24-20020a634d18000000b0041d2c8c01d8mr9490230pgb.98.1659960388596; Mon, 08 Aug 2022 05:06:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1659960388; cv=none; d=google.com; s=arc-20160816; b=w/OXFh3rnDvdSQj2B9R/NFJvYgEKwNVltsQAAiG4M3BwMJHarSiwwFlrdnv/Prdrvo k9eWZAVrHhXe3gTKuqlpEMrSoxjYtoFnICXnObIKU3rM1kc3/QkAevo9gqJCc+84uKy9 xtSTa5/aG5ccOlsVN1qCz7h2VtuOz2f2ZA8r2T0oJ/qT8Mt9urOwmqTgiyRE1cWgW6b/ onx3sLZVQsioq0j6/BpAc5kZWVAk0gsMvmY5r8QvL366U4vzxmeqseC68xakqBkFwvfd 3h0/9canJowmaGN2BuIIM2lXy+CHIuQAOGtpPKDUize+8PT+W0oKj+uOKVqeQEEmIoZ8 88xw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-language:content-transfer-encoding :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject:dkim-signature; bh=6TsElmCORhqXP8jgwrJUUvOp+RZV2x4q8imaLygih6I=; b=xmid714mT94qiauVZAT5ZC8WG4cx2quUwMV1E4OZl/rbn0LuGybUVb523frlQv7epU N/lzWFwYkMwI1dTtEfs3Ly0nZtMrGgK+5X0JfMMnYtPl5XdJg7dk7/MNX8hfElXA5zcB +vxZWDNdVXbKj+nnSxFFOtoplhpqe//EU4LQikC2hUqUpjVHHo3SigjUF/oKjPlnoOnR sZHImg7rQyrzUeHutD1UQ09poLjF5ICjgr7DN6aLy21nIPFDetZuG8A46gSpriVcE+KS PFJJ4va5sOCXEXHit+5F4ZINxSUPTH8K1atVPQ280EWiFOApStkY8G0jIzg9Umkx4wZ1 p3kg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=FK0jFaEq; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b18-20020a056a00115200b005184183372csi13427394pfm.350.2022.08.08.05.05.28; Mon, 08 Aug 2022 05:06:28 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-nfs-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=@redhat.com header.s=mimecast20190719 header.b=FK0jFaEq; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242866AbiHHL46 (ORCPT + 99 others); Mon, 8 Aug 2022 07:56:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59524 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242774AbiHHL45 (ORCPT ); Mon, 8 Aug 2022 07:56:57 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id C69FE25FE for ; Mon, 8 Aug 2022 04:56:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659959813; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=6TsElmCORhqXP8jgwrJUUvOp+RZV2x4q8imaLygih6I=; b=FK0jFaEqsb92pr+4ukqunsoA+BdfhWMJvRLkrd+b07f7/V32C+fpP+04nxDgkmMZfVyzsv 4zCyghA0shM3w24KxKlfsEGU+mHEScdLdYnMJ/k15KElmCrGCyChBjqm4TVdWhuDXhZ1WS uqc4O/0PwHEHwvFXGemWokSFDoSBCN4= Received: from mail-pf1-f200.google.com (mail-pf1-f200.google.com [209.85.210.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-509-tujhnxz-MeWNvUrpL4rTSg-1; Mon, 08 Aug 2022 07:56:52 -0400 X-MC-Unique: tujhnxz-MeWNvUrpL4rTSg-1 Received: by mail-pf1-f200.google.com with SMTP id r13-20020aa7988d000000b0052ed235197bso3006352pfl.20 for ; Mon, 08 Aug 2022 04:56:52 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-language:content-transfer-encoding:in-reply-to:mime-version :user-agent:date:message-id:from:references:cc:to:subject :x-gm-message-state:from:to:cc; bh=6TsElmCORhqXP8jgwrJUUvOp+RZV2x4q8imaLygih6I=; b=Cm2ZemLA5yx2t9OtA5HfdCsqLoL456w42zVgcrZwqESG4Mt4eVk5mj1TBplsW3reYg 6LFDGye8adlXuZ3LEYboaAnkD6vRd2xZf1hHG/nhvaDE/m0QsdGFCtFrIdtKB0Oe6qIK /+ACmKPoYqbN2EhkZLmodkToAoaFEjCRDvdqSNgRZyeRvKA3AY6kPfQ+pi6+MGLCfwHP tkcEnlOtfYClPckQmjCjv7WUX6hrptyPaRoJ7nLcMVJt2a08DAUaRbmpsa+M1GeAFPRu /H5Pbjwgxm2KqoZpYAc/XSJnn9tEPxNnLTzXeHUe9yofPfhl8ZhYngVBToBT+HJlzh+r G0gQ== X-Gm-Message-State: ACgBeo0hwO7jUke6gddfacSYJqgcQ78wrD4VIN3q8Zotr2mLy4WlqElO 7qhDLoqqOb0twzOihfmUIeIDe+VGIQQvehonL/+0Y253QPOcPwD0ltUcmkxMAGf7ZUd1jUJVmQ3 uQl6wBtaEeopmOnokPNC0 X-Received: by 2002:a63:b95e:0:b0:41d:6498:2ad5 with SMTP id v30-20020a63b95e000000b0041d64982ad5mr5220517pgo.446.1659959811201; Mon, 08 Aug 2022 04:56:51 -0700 (PDT) X-Received: by 2002:a63:b95e:0:b0:41d:6498:2ad5 with SMTP id v30-20020a63b95e000000b0041d64982ad5mr5220501pgo.446.1659959810869; Mon, 08 Aug 2022 04:56:50 -0700 (PDT) Received: from [10.72.12.61] ([209.132.188.80]) by smtp.gmail.com with ESMTPSA id b7-20020a1709027e0700b0016cf195eb16sm1338072plm.185.2022.08.08.04.56.45 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 08 Aug 2022 04:56:50 -0700 (PDT) Subject: Re: [RFC PATCH 4/4] ceph: fill in the change attribute in statx requests To: Jeff Layton , linux-fsdevel@vger.kernel.org Cc: dhowells@redhat.com, lczerner@redhat.com, bxue@redhat.com, ceph-devel@vger.kernel.org, linux-nfs@vger.kernel.org, linux-afs@lists.infradead.org, linux-ext4@vger.kernel.org, linux-xfs@vger.kernel.org, linux-btrfs@vger.kernel.org References: <20220805183543.274352-1-jlayton@kernel.org> <20220805183543.274352-5-jlayton@kernel.org> From: Xiubo Li Message-ID: <42ec7d51-71ee-03b2-39bc-1ea624880a3e@redhat.com> Date: Mon, 8 Aug 2022 19:56:43 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.1 MIME-Version: 1.0 In-Reply-To: <20220805183543.274352-5-jlayton@kernel.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-Spam-Status: No, score=-3.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A, RCVD_IN_DNSWL_LOW,SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable 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-nfs@vger.kernel.org On 8/6/22 2:35 AM, Jeff Layton wrote: > When statx requests the change attribute, request the full gamut of caps > (similarly to how ctime is handled). When the change attribute seems to > be valid, return it in the chgattr field. > > Signed-off-by: Jeff Layton > --- > fs/ceph/inode.c | 14 +++++++++----- > 1 file changed, 9 insertions(+), 5 deletions(-) > > diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c > index 56c53ab3618e..fb2ed85f9083 100644 > --- a/fs/ceph/inode.c > +++ b/fs/ceph/inode.c > @@ -2408,10 +2408,10 @@ static int statx_to_caps(u32 want, umode_t mode) > { > int mask = 0; > > - if (want & (STATX_MODE|STATX_UID|STATX_GID|STATX_CTIME|STATX_BTIME)) > + if (want & (STATX_MODE|STATX_UID|STATX_GID|STATX_CTIME|STATX_BTIME|STATX_CHGATTR)) > mask |= CEPH_CAP_AUTH_SHARED; > > - if (want & (STATX_NLINK|STATX_CTIME)) { > + if (want & (STATX_NLINK|STATX_CTIME|STATX_CHGATTR)) { > /* > * The link count for directories depends on inode->i_subdirs, > * and that is only updated when Fs caps are held. > @@ -2422,11 +2422,10 @@ static int statx_to_caps(u32 want, umode_t mode) > mask |= CEPH_CAP_LINK_SHARED; > } > > - if (want & (STATX_ATIME|STATX_MTIME|STATX_CTIME|STATX_SIZE| > - STATX_BLOCKS)) > + if (want & (STATX_ATIME|STATX_MTIME|STATX_CTIME|STATX_SIZE| STATX_BLOCKS|STATX_CHGATTR)) > mask |= CEPH_CAP_FILE_SHARED; > > - if (want & (STATX_CTIME)) > + if (want & (STATX_CTIME|STATX_CHGATTR)) > mask |= CEPH_CAP_XATTR_SHARED; > > return mask; > @@ -2468,6 +2467,11 @@ int ceph_getattr(struct user_namespace *mnt_userns, const struct path *path, > valid_mask |= STATX_BTIME; > } > > + if (request_mask & STATX_CHGATTR) { > + stat->chgattr = inode_peek_iversion_raw(inode); > + valid_mask |= STATX_CHGATTR; > + } > + > if (ceph_snap(inode) == CEPH_NOSNAP) > stat->dev = inode->i_sb->s_dev; > else Reviewed-by: Xiubo Li