Messages in this thread | | | Date | Tue, 8 Aug 2023 11:37:01 +0200 | From | Jan Kara <> | Subject | Re: [PATCH v7 06/13] ubifs: have ubifs_update_time use inode_update_timestamps |
| |
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 <jlayton@kernel.org>
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...
> if (release) > ubifs_release_budget(c, &req);
Honza
-- Jan Kara <jack@suse.com> SUSE Labs, CR
| |