Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp30314185rwd; Thu, 6 Jul 2023 04:15:28 -0700 (PDT) X-Google-Smtp-Source: APBJJlEX/Ej6urJEQIrTG0yk0UY9I5pSM7k0wMvHqwKgyPbuoSDfVFuQUs3LfCEtn4ciptjuPm+N X-Received: by 2002:a17:902:a9c1:b0:1b8:64e9:e4b3 with SMTP id b1-20020a170902a9c100b001b864e9e4b3mr1068800plr.39.1688642127936; Thu, 06 Jul 2023 04:15:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688642127; cv=none; d=google.com; s=arc-20160816; b=Yyx3zL0k5NRSwY4EmUtgH8hLFqRFD91rOamG2X/+ATGaZcarPAdUnVClBmK6yFzGnB D5IkoU6QUka0vtSLsmYftoGf42407pJKgjy2a4chxtdhvGcInnAjDmVOtdX/g5z2gJzF VRpUttI/TV2e4Z3zFJQKWbfQKBWmvohVtygGOVrsIZAbBTEb9XYNIaLa/9IjBVoR0Ag7 CZMK6uOFSOBPrPKn392alIdv7StU+fFN9C/aZ+ucijWinGMqDZunpFEaWaHcqnI0/9Uv sfF3fwxYmugEwOQ3843mnhxSitxaNwpfJButTelGOYR86fS+IpQQTPxaBHNfsQxVoWiY YoDQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature :dkim-signature; bh=5Rxs4LWmkhj0b9R1MhEn+qLcVOlphQJ/+uzFKEEqkG4=; fh=3iH7vLNHeMFMqipVexucsZm53Fr9mkXs+yb6nIS3nQg=; b=WioypJsgBpadukLhDaxGNOtKxxhHhuvmzeUr0ZVMDyhF0HbjYihHjfxRRSgZiMUyds KqecQCWsuz5BFkAqJP5rwFBysJpnNVFiWQDHswEoc0cEaAtgDcEhx1yuj9CmPyBpEHS/ gqkoczTllIYlkJ2IecRBhGzMMhPgyAJjnVEmGbR0hZ0ZYpZ6D+Qj4IglwNO5iQvdyybk 2ww1BJRwOvfRVSIsq/xExTmj1W5NS2FYrBdahmxvOJ5PFEMmUw0gF91/aNlAtkFCKsC9 gRXTZAHCnL4k7Q6Ev5sDCXrMWFOKurlp+Yd44xunat6fp8Jk8/P1djac70TdeaZY0WmK A6/g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.cz header.s=susede2_rsa header.b=b7YFT1vH; dkim=neutral (no key) header.i=@suse.cz; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id kv7-20020a17090328c700b001b803ab0e27si1015836plb.360.2023.07.06.04.15.06; Thu, 06 Jul 2023 04:15:27 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-ext4-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=@suse.cz header.s=susede2_rsa header.b=b7YFT1vH; dkim=neutral (no key) header.i=@suse.cz; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232235AbjGFLDR (ORCPT + 99 others); Thu, 6 Jul 2023 07:03:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51968 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229945AbjGFLDR (ORCPT ); Thu, 6 Jul 2023 07:03:17 -0400 Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 548DFDC; Thu, 6 Jul 2023 04:03:15 -0700 (PDT) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 0DE7820540; Thu, 6 Jul 2023 11:03:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1688641394; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=5Rxs4LWmkhj0b9R1MhEn+qLcVOlphQJ/+uzFKEEqkG4=; b=b7YFT1vHhmkk1HtJEJoGZRndYechby4Bjznmvi6XmEj5VFysrIghfm1dUCJK+1O8spvhbj Dc2DtwUsAtiMJC3Y4OzuHloNw8teSf44AUHC6zeSTmn0p2hwXrDjMt5TnzGboepypNtDdn u2GfsRLA3mMdInay1EjxnJuCIQHZFiw= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1688641394; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=5Rxs4LWmkhj0b9R1MhEn+qLcVOlphQJ/+uzFKEEqkG4=; b=H3DylN8BV70mVVN/53nsytAg8zlC+SAnRRrm96kmzXijljHwz4RD3UDlaPk4/So6JPPkRl 5nAhA2Zdbu2HdyBA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id EA8DF138EE; Thu, 6 Jul 2023 11:03:13 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id v9BCOXGfpmTECQAAMHmgww (envelope-from ); Thu, 06 Jul 2023 11:03:13 +0000 Received: by quack3.suse.cz (Postfix, from userid 1000) id 78115A0707; Thu, 6 Jul 2023 13:03:13 +0200 (CEST) Date: Thu, 6 Jul 2023 13:03:13 +0200 From: Jan Kara To: Jeff Layton Cc: Christian Brauner , Jan Kara , Al Viro , Jan Kara , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-ext4@vger.kernel.org Subject: Re: [PATCH v2 41/92] ext2: convert to ctime accessor functions Message-ID: <20230706110313.kxiesbruvzrdsxzo@quack3> References: <20230705185755.579053-1-jlayton@kernel.org> <20230705190309.579783-1-jlayton@kernel.org> <20230705190309.579783-39-jlayton@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230705190309.579783-39-jlayton@kernel.org> X-Spam-Status: No, score=-3.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_SOFTFAIL,T_SCC_BODY_TEXT_LINE 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-ext4@vger.kernel.org On Wed 05-07-23 15:01:06, Jeff Layton wrote: > In later patches, we're going to change how the inode's ctime field is > used. Switch to using accessor functions instead of raw accesses of > inode->i_ctime. > > Signed-off-by: Jeff Layton Looks good. Feel free to add: Reviewed-by: Jan Kara Honza > --- > fs/ext2/acl.c | 2 +- > fs/ext2/dir.c | 6 +++--- > fs/ext2/ialloc.c | 2 +- > fs/ext2/inode.c | 10 +++++----- > fs/ext2/ioctl.c | 4 ++-- > fs/ext2/namei.c | 8 ++++---- > fs/ext2/super.c | 2 +- > fs/ext2/xattr.c | 2 +- > 8 files changed, 18 insertions(+), 18 deletions(-) > > diff --git a/fs/ext2/acl.c b/fs/ext2/acl.c > index 82b17d7fc93f..7e54c31589c7 100644 > --- a/fs/ext2/acl.c > +++ b/fs/ext2/acl.c > @@ -237,7 +237,7 @@ ext2_set_acl(struct mnt_idmap *idmap, struct dentry *dentry, > error = __ext2_set_acl(inode, acl, type); > if (!error && update_mode) { > inode->i_mode = mode; > - inode->i_ctime = current_time(inode); > + inode_set_ctime_current(inode); > mark_inode_dirty(inode); > } > return error; > diff --git a/fs/ext2/dir.c b/fs/ext2/dir.c > index 42db804794bd..b335f17f682f 100644 > --- a/fs/ext2/dir.c > +++ b/fs/ext2/dir.c > @@ -468,7 +468,7 @@ int ext2_set_link(struct inode *dir, struct ext2_dir_entry_2 *de, > ext2_set_de_type(de, inode); > ext2_commit_chunk(page, pos, len); > if (update_times) > - dir->i_mtime = dir->i_ctime = current_time(dir); > + dir->i_mtime = inode_set_ctime_current(dir); > EXT2_I(dir)->i_flags &= ~EXT2_BTREE_FL; > mark_inode_dirty(dir); > return ext2_handle_dirsync(dir); > @@ -555,7 +555,7 @@ int ext2_add_link (struct dentry *dentry, struct inode *inode) > de->inode = cpu_to_le32(inode->i_ino); > ext2_set_de_type (de, inode); > ext2_commit_chunk(page, pos, rec_len); > - dir->i_mtime = dir->i_ctime = current_time(dir); > + dir->i_mtime = inode_set_ctime_current(dir); > EXT2_I(dir)->i_flags &= ~EXT2_BTREE_FL; > mark_inode_dirty(dir); > err = ext2_handle_dirsync(dir); > @@ -606,7 +606,7 @@ int ext2_delete_entry(struct ext2_dir_entry_2 *dir, struct page *page) > pde->rec_len = ext2_rec_len_to_disk(to - from); > dir->inode = 0; > ext2_commit_chunk(page, pos, to - from); > - inode->i_ctime = inode->i_mtime = current_time(inode); > + inode->i_mtime = inode_set_ctime_current(inode); > EXT2_I(inode)->i_flags &= ~EXT2_BTREE_FL; > mark_inode_dirty(inode); > return ext2_handle_dirsync(inode); > diff --git a/fs/ext2/ialloc.c b/fs/ext2/ialloc.c > index 34cd5dc1da23..c24d0de95a83 100644 > --- a/fs/ext2/ialloc.c > +++ b/fs/ext2/ialloc.c > @@ -546,7 +546,7 @@ struct inode *ext2_new_inode(struct inode *dir, umode_t mode, > > inode->i_ino = ino; > inode->i_blocks = 0; > - inode->i_mtime = inode->i_atime = inode->i_ctime = current_time(inode); > + inode->i_mtime = inode->i_atime = inode_set_ctime_current(inode); > memset(ei->i_data, 0, sizeof(ei->i_data)); > ei->i_flags = > ext2_mask_flags(mode, EXT2_I(dir)->i_flags & EXT2_FL_INHERITED); > diff --git a/fs/ext2/inode.c b/fs/ext2/inode.c > index 75983215c7a1..1259995977d2 100644 > --- a/fs/ext2/inode.c > +++ b/fs/ext2/inode.c > @@ -595,7 +595,7 @@ static void ext2_splice_branch(struct inode *inode, > if (where->bh) > mark_buffer_dirty_inode(where->bh, inode); > > - inode->i_ctime = current_time(inode); > + inode_set_ctime_current(inode); > mark_inode_dirty(inode); > } > > @@ -1287,7 +1287,7 @@ static int ext2_setsize(struct inode *inode, loff_t newsize) > __ext2_truncate_blocks(inode, newsize); > filemap_invalidate_unlock(inode->i_mapping); > > - inode->i_mtime = inode->i_ctime = current_time(inode); > + inode->i_mtime = inode_set_ctime_current(inode); > if (inode_needs_sync(inode)) { > sync_mapping_buffers(inode->i_mapping); > sync_inode_metadata(inode, 1); > @@ -1409,9 +1409,9 @@ struct inode *ext2_iget (struct super_block *sb, unsigned long ino) > set_nlink(inode, le16_to_cpu(raw_inode->i_links_count)); > inode->i_size = le32_to_cpu(raw_inode->i_size); > inode->i_atime.tv_sec = (signed)le32_to_cpu(raw_inode->i_atime); > - inode->i_ctime.tv_sec = (signed)le32_to_cpu(raw_inode->i_ctime); > + inode_set_ctime(inode, (signed)le32_to_cpu(raw_inode->i_ctime), 0); > inode->i_mtime.tv_sec = (signed)le32_to_cpu(raw_inode->i_mtime); > - inode->i_atime.tv_nsec = inode->i_mtime.tv_nsec = inode->i_ctime.tv_nsec = 0; > + inode->i_atime.tv_nsec = inode->i_mtime.tv_nsec = 0; > ei->i_dtime = le32_to_cpu(raw_inode->i_dtime); > /* We now have enough fields to check if the inode was active or not. > * This is needed because nfsd might try to access dead inodes > @@ -1541,7 +1541,7 @@ static int __ext2_write_inode(struct inode *inode, int do_sync) > raw_inode->i_links_count = cpu_to_le16(inode->i_nlink); > raw_inode->i_size = cpu_to_le32(inode->i_size); > raw_inode->i_atime = cpu_to_le32(inode->i_atime.tv_sec); > - raw_inode->i_ctime = cpu_to_le32(inode->i_ctime.tv_sec); > + raw_inode->i_ctime = cpu_to_le32(inode_get_ctime(inode).tv_sec); > raw_inode->i_mtime = cpu_to_le32(inode->i_mtime.tv_sec); > > raw_inode->i_blocks = cpu_to_le32(inode->i_blocks); > diff --git a/fs/ext2/ioctl.c b/fs/ext2/ioctl.c > index cc87d413eb43..44e04484e570 100644 > --- a/fs/ext2/ioctl.c > +++ b/fs/ext2/ioctl.c > @@ -44,7 +44,7 @@ int ext2_fileattr_set(struct mnt_idmap *idmap, > (fa->flags & EXT2_FL_USER_MODIFIABLE); > > ext2_set_inode_flags(inode); > - inode->i_ctime = current_time(inode); > + inode_set_ctime_current(inode); > mark_inode_dirty(inode); > > return 0; > @@ -77,7 +77,7 @@ long ext2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) > } > > inode_lock(inode); > - inode->i_ctime = current_time(inode); > + inode_set_ctime_current(inode); > inode->i_generation = generation; > inode_unlock(inode); > > diff --git a/fs/ext2/namei.c b/fs/ext2/namei.c > index 937dd8f60f96..059517068adc 100644 > --- a/fs/ext2/namei.c > +++ b/fs/ext2/namei.c > @@ -211,7 +211,7 @@ static int ext2_link (struct dentry * old_dentry, struct inode * dir, > if (err) > return err; > > - inode->i_ctime = current_time(inode); > + inode_set_ctime_current(inode); > inode_inc_link_count(inode); > ihold(inode); > > @@ -291,7 +291,7 @@ static int ext2_unlink(struct inode *dir, struct dentry *dentry) > if (err) > goto out; > > - inode->i_ctime = dir->i_ctime; > + inode_set_ctime_to_ts(inode, inode_get_ctime(dir)); > inode_dec_link_count(inode); > err = 0; > out: > @@ -367,7 +367,7 @@ static int ext2_rename (struct mnt_idmap * idmap, > ext2_put_page(new_page, new_de); > if (err) > goto out_dir; > - new_inode->i_ctime = current_time(new_inode); > + inode_set_ctime_current(new_inode); > if (dir_de) > drop_nlink(new_inode); > inode_dec_link_count(new_inode); > @@ -383,7 +383,7 @@ static int ext2_rename (struct mnt_idmap * idmap, > * Like most other Unix systems, set the ctime for inodes on a > * rename. > */ > - old_inode->i_ctime = current_time(old_inode); > + inode_set_ctime_current(old_inode); > mark_inode_dirty(old_inode); > > err = ext2_delete_entry(old_de, old_page); > diff --git a/fs/ext2/super.c b/fs/ext2/super.c > index 2959afc7541c..aaf3e3e88cb2 100644 > --- a/fs/ext2/super.c > +++ b/fs/ext2/super.c > @@ -1572,7 +1572,7 @@ static ssize_t ext2_quota_write(struct super_block *sb, int type, > if (inode->i_size < off+len-towrite) > i_size_write(inode, off+len-towrite); > inode_inc_iversion(inode); > - inode->i_mtime = inode->i_ctime = current_time(inode); > + inode->i_mtime = inode_set_ctime_current(inode); > mark_inode_dirty(inode); > return len - towrite; > } > diff --git a/fs/ext2/xattr.c b/fs/ext2/xattr.c > index 8906ba479aaf..1c9187188d68 100644 > --- a/fs/ext2/xattr.c > +++ b/fs/ext2/xattr.c > @@ -773,7 +773,7 @@ ext2_xattr_set2(struct inode *inode, struct buffer_head *old_bh, > > /* Update the inode. */ > EXT2_I(inode)->i_file_acl = new_bh ? new_bh->b_blocknr : 0; > - inode->i_ctime = current_time(inode); > + inode_set_ctime_current(inode); > if (IS_SYNC(inode)) { > error = sync_inode_metadata(inode, 1); > /* In case sync failed due to ENOSPC the inode was actually > -- > 2.41.0 > -- Jan Kara SUSE Labs, CR