]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blobdiff - fs/fat/misc.c
Merge tag 'md-3.11' of git://neil.brown.name/md
[mirror_ubuntu-zesty-kernel.git] / fs / fat / misc.c
index 6d93360ca0ccec574f941dd72d2f4c32f94865b0..628e22a5a5433dae9287bdb94b10c19c6af8a538 100644 (file)
@@ -30,7 +30,7 @@ void __fat_fs_error(struct super_block *sb, int report, const char *fmt, ...)
                va_start(args, fmt);
                vaf.fmt = fmt;
                vaf.va = &args;
-               printk(KERN_ERR "FAT-fs (%s): error, %pV\n", sb->s_id, &vaf);
+               fat_msg(sb, KERN_ERR, "error, %pV", &vaf);
                va_end(args);
        }
 
@@ -38,8 +38,7 @@ void __fat_fs_error(struct super_block *sb, int report, const char *fmt, ...)
                panic("FAT-fs (%s): fs panic from previous error\n", sb->s_id);
        else if (opts->errors == FAT_ERRORS_RO && !(sb->s_flags & MS_RDONLY)) {
                sb->s_flags |= MS_RDONLY;
-               printk(KERN_ERR "FAT-fs (%s): Filesystem has been "
-                               "set read-only\n", sb->s_id);
+               fat_msg(sb, KERN_ERR, "Filesystem has been set read-only");
        }
 }
 EXPORT_SYMBOL_GPL(__fat_fs_error);
@@ -135,6 +134,10 @@ int fat_chain_add(struct inode *inode, int new_dclus, int nr_cluster)
                }
                if (ret < 0)
                        return ret;
+               /*
+                * FIXME:Although we can add this cache, fat_cache_add() is
+                * assuming to be called after linear search with fat_cache_id.
+                */
 //             fat_cache_add(inode, new_fclus, new_dclus);
        } else {
                MSDOS_I(inode)->i_start = new_dclus;
@@ -212,8 +215,10 @@ void fat_time_fat2unix(struct msdos_sb_info *sbi, struct timespec *ts,
                   + days_in_year[month] + day
                   + DAYS_DELTA) * SECS_PER_DAY;
 
-       if (!sbi->options.tz_utc)
+       if (!sbi->options.tz_set)
                second += sys_tz.tz_minuteswest * SECS_PER_MIN;
+       else
+               second -= sbi->options.time_offset * SECS_PER_MIN;
 
        if (time_cs) {
                ts->tv_sec = second + (time_cs / 100);
@@ -229,8 +234,9 @@ void fat_time_unix2fat(struct msdos_sb_info *sbi, struct timespec *ts,
                       __le16 *time, __le16 *date, u8 *time_cs)
 {
        struct tm tm;
-       time_to_tm(ts->tv_sec, sbi->options.tz_utc ? 0 :
-                  -sys_tz.tz_minuteswest * 60, &tm);
+       time_to_tm(ts->tv_sec,
+                  (sbi->options.tz_set ? sbi->options.time_offset :
+                  -sys_tz.tz_minuteswest) * SECS_PER_MIN, &tm);
 
        /*  FAT can only support year between 1980 to 2107 */
        if (tm.tm_year < 1980 - 1900) {