On Wed 21-06-23 10:45:20, Jeff Layton wrote: > In later patches, we're going to change how the ctime.tv_nsec field is > utilized. Switch to using accessor functions instead of raw accesses of > inode->i_ctime. > > Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx> Looks good to me. Feel free to add: Reviewed-by: Jan Kara <jack@xxxxxxx> Honza > --- > drivers/usb/core/devio.c | 16 ++++++++-------- > drivers/usb/gadget/function/f_fs.c | 6 +----- > drivers/usb/gadget/legacy/inode.c | 3 +-- > 3 files changed, 10 insertions(+), 15 deletions(-) > > diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c > index 1a16a8bdea60..02f718e0deaf 100644 > --- a/drivers/usb/core/devio.c > +++ b/drivers/usb/core/devio.c > @@ -2642,21 +2642,21 @@ static long usbdev_do_ioctl(struct file *file, unsigned int cmd, > snoop(&dev->dev, "%s: CONTROL\n", __func__); > ret = proc_control(ps, p); > if (ret >= 0) > - inode->i_mtime = inode->i_ctime = current_time(inode); > + inode->i_mtime = inode_ctime_set_current(inode); > break; > > case USBDEVFS_BULK: > snoop(&dev->dev, "%s: BULK\n", __func__); > ret = proc_bulk(ps, p); > if (ret >= 0) > - inode->i_mtime = inode->i_ctime = current_time(inode); > + inode->i_mtime = inode_ctime_set_current(inode); > break; > > case USBDEVFS_RESETEP: > snoop(&dev->dev, "%s: RESETEP\n", __func__); > ret = proc_resetep(ps, p); > if (ret >= 0) > - inode->i_mtime = inode->i_ctime = current_time(inode); > + inode->i_mtime = inode_ctime_set_current(inode); > break; > > case USBDEVFS_RESET: > @@ -2668,7 +2668,7 @@ static long usbdev_do_ioctl(struct file *file, unsigned int cmd, > snoop(&dev->dev, "%s: CLEAR_HALT\n", __func__); > ret = proc_clearhalt(ps, p); > if (ret >= 0) > - inode->i_mtime = inode->i_ctime = current_time(inode); > + inode->i_mtime = inode_ctime_set_current(inode); > break; > > case USBDEVFS_GETDRIVER: > @@ -2695,7 +2695,7 @@ static long usbdev_do_ioctl(struct file *file, unsigned int cmd, > snoop(&dev->dev, "%s: SUBMITURB\n", __func__); > ret = proc_submiturb(ps, p); > if (ret >= 0) > - inode->i_mtime = inode->i_ctime = current_time(inode); > + inode->i_mtime = inode_ctime_set_current(inode); > break; > > #ifdef CONFIG_COMPAT > @@ -2703,14 +2703,14 @@ static long usbdev_do_ioctl(struct file *file, unsigned int cmd, > snoop(&dev->dev, "%s: CONTROL32\n", __func__); > ret = proc_control_compat(ps, p); > if (ret >= 0) > - inode->i_mtime = inode->i_ctime = current_time(inode); > + inode->i_mtime = inode_ctime_set_current(inode); > break; > > case USBDEVFS_BULK32: > snoop(&dev->dev, "%s: BULK32\n", __func__); > ret = proc_bulk_compat(ps, p); > if (ret >= 0) > - inode->i_mtime = inode->i_ctime = current_time(inode); > + inode->i_mtime = inode_ctime_set_current(inode); > break; > > case USBDEVFS_DISCSIGNAL32: > @@ -2722,7 +2722,7 @@ static long usbdev_do_ioctl(struct file *file, unsigned int cmd, > snoop(&dev->dev, "%s: SUBMITURB32\n", __func__); > ret = proc_submiturb_compat(ps, p); > if (ret >= 0) > - inode->i_mtime = inode->i_ctime = current_time(inode); > + inode->i_mtime = inode_ctime_set_current(inode); > break; > > case USBDEVFS_IOCTL32: > diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c > index f41a385a5c42..756c78043a04 100644 > --- a/drivers/usb/gadget/function/f_fs.c > +++ b/drivers/usb/gadget/function/f_fs.c > @@ -1377,16 +1377,12 @@ ffs_sb_make_inode(struct super_block *sb, void *data, > inode = new_inode(sb); > > if (inode) { > - struct timespec64 ts = current_time(inode); > - > inode->i_ino = get_next_ino(); > inode->i_mode = perms->mode; > inode->i_uid = perms->uid; > inode->i_gid = perms->gid; > - inode->i_atime = ts; > - inode->i_mtime = ts; > - inode->i_ctime = ts; > inode->i_private = data; > + inode->i_atime = inode->i_mtime = inode_ctime_set_current(inode); > if (fops) > inode->i_fop = fops; > if (iops) > diff --git a/drivers/usb/gadget/legacy/inode.c b/drivers/usb/gadget/legacy/inode.c > index 28249d0bf062..b83a68feb316 100644 > --- a/drivers/usb/gadget/legacy/inode.c > +++ b/drivers/usb/gadget/legacy/inode.c > @@ -1969,8 +1969,7 @@ gadgetfs_make_inode (struct super_block *sb, > inode->i_mode = mode; > inode->i_uid = make_kuid(&init_user_ns, default_uid); > inode->i_gid = make_kgid(&init_user_ns, default_gid); > - inode->i_atime = inode->i_mtime = inode->i_ctime > - = current_time(inode); > + inode->i_atime = inode->i_mtime = inode_ctime_set_current(inode); > inode->i_private = data; > inode->i_fop = fops; > } > -- > 2.41.0 > -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR