On Sun, 24 Nov 2019 19:03:15 -0500, Namjae Jeon said: > This adds the implementation of superblock operations for exfat. > fs/exfat/super.c | 738 +++++++++++++++++++++++++++++++++++++++++++++++ > +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 == -1) > + opts->allow_utime = ~opts->fs_dmask & 0022; This throws a warning when building with W=1: CC [M] fs/exfat/super.o fs/exfat/super.c: In function 'exfat_fill_super': fs/exfat/super.c:552:24: warning: comparison is always false due to limited range of data type [-Wtype-limits] 552 | if (opts->allow_utime == -1) | ^~ which means that opts->allow_utime will never get set. Except for the use of -1 to show an uninitialized value, all the other uses don't care about sign/unsigned, so let's make it signed.... Signed-off-by: Valdis Kletnieks <valdis.kletnieks@xxxxxx> --- a/fs/exfat/exfat_fs.h 2019-12-06 05:17:58.344590227 -0500 +++ b/fs/exfat/exfat_fs.h 2019-12-06 05:18:25.429222169 -0500 @@ -210,7 +210,7 @@ unsigned short fs_fmask; unsigned short fs_dmask; /* permission for setting the [am]time */ - unsigned short allow_utime; + short allow_utime; /* charset for filename input/display */ char *iocharset; unsigned char utf8;