Re: [Cluster-devel] [PATCH v7 06/13] ubifs: have ubifs_update_time use inode_update_timestamps
Christian Brauner <[email protected]> Wed, 9 Aug 2023 09:06:34 +0200
| Newsgroups | com.redhat.cluster-devel,dev.linux.lists.ntfs3,dev.linux.lists.ocfs2-devel,dev.linux.lists.v9fs,net.sourceforge.lists.linux-f2fs-devel,org.infradead.lists.linux-mtd,org.kernel.vger.ceph-devel,org.kernel.vger.ecryptfs,org.kernel.vger.linux-btrfs,org.kernel.vger.linux-cifs,org.kernel.vger.linux-ext4,org.kernel.vger.linux-fsdevel,org.kernel.vger.linux-kernel,org.kernel.vger.linux-nfs,org.kernel.vger.linux-unionfs,org.kernel.vger.linux-xfs,org.kvack.linux-mm,org.ozlabs.lists.linux-erofs |
|---|---|
| Message-ID | <20230809-handreichung-umgearbeitet-951eebed4d61@brauner> |
On Tue, Aug 08, 2023 at 11:37:01AM +0200, Jan Kara wrote: > On Mon 07-08-23 15:38:37, Jeff Layton wrote: > > In later patches, we're going to drop the "now" parameter from the > > update_time operation. Prepare ubifs for this, by having it use the new > > inode_update_timestamps helper. > > > > Signed-off-by: Jeff Layton <[email protected]> > > One comment below: > > > diff --git a/fs/ubifs/file.c b/fs/ubifs/file.c > > index df9086b19cd0..2d0178922e19 100644 > > --- a/fs/ubifs/file.c > > +++ b/fs/ubifs/file.c > > @@ -1397,15 +1397,9 @@ int ubifs_update_time(struct inode *inode, struct timespec64 *time, > > return err; > > > > mutex_lock(&ui->ui_mutex); > > - if (flags & S_ATIME) > > - inode->i_atime = *time; > > - if (flags & S_CTIME) > > - inode_set_ctime_to_ts(inode, *time); > > - if (flags & S_MTIME) > > - inode->i_mtime = *time; > > - > > - release = ui->dirty; > > + inode_update_timestamps(inode, flags); > > __mark_inode_dirty(inode, I_DIRTY_SYNC); > > + release = ui->dirty; > > mutex_unlock(&ui->ui_mutex); > > I think this is wrong. You need to keep sampling ui->dirty before calling > __mark_inode_dirty(). Otherwise you could release budget for inode update > you really need... Fixed in-tree.