> > +static int exfat_fill_super(struct super_block *sb, struct fs_context > > +*fc) { > > + struct exfat_sb_info *sbi = sb->s_fs_info; > > + struct exfat_mount_options *opts = &sbi->options; > > + struct inode *root_inode; > > + int err; > > + > > + if (opts->allow_utime == (unsigned short)-1) > > + opts->allow_utime = ~opts->fs_dmask & 0022; > > + > > + if (opts->utf8 && strcmp(opts->iocharset, > exfat_iocharset_with_utf8)) { > > + exfat_msg(sb, KERN_WARNING, > > + "utf8 enabled, \"iocharset=%s\" is recommended", > > + exfat_iocharset_with_utf8); > > + } > > + > > + if (opts->discard) { > > + struct request_queue *q = bdev_get_queue(sb->s_bdev); > > + > > + if (!blk_queue_discard(q)) > > + exfat_msg(sb, KERN_WARNING, > > + "mounting with \"discard\" option, but the > device does not support discard"); > > + opts->discard = 0; > > + } > > + > > + sb->s_flags |= SB_NODIRATIME; > > + sb->s_magic = EXFAT_SUPER_MAGIC; > > + sb->s_op = &exfat_sops; > > I don't see you set up s_time_gran, s_time_min and s_time_max anywhere. > Please fill those to get the correct behavior. That also lets you drop the > manual truncation of the values. Okay! Thanks! > > Arnd