--- zzzz-none-000/linux-2.6.28.10/fs/fat/misc.c 2009-05-02 18:54:43.000000000 +0000 +++ fusiv-7390-686/linux-2.6.28.10/fs/fat/misc.c 2011-06-09 08:57:44.000000000 +0000 @@ -30,6 +30,14 @@ if (!(s->s_flags & MS_RDONLY)) { s->s_flags |= MS_RDONLY; printk(KERN_ERR " File system has been set read-only\n"); + /* AVM/WK 20100625 Call usermode notifier */ + { + typedef char * pchar; + char* argc[]= {"/sbin/fs_error", s->s_id, NULL}; + char* envp[]= {"ACTION=fat_fs_panic", NULL}; + + call_usermodehelper (argc[0], argc, envp, UMH_NO_WAIT); + } } } @@ -189,8 +197,11 @@ + days_in_year[month] + day + DAYS_DELTA) * SECS_PER_DAY; - if (!sbi->options.tz_utc) + if ( sbi->options.tz_minuteswest ) { + second += sbi->options.tz_minuteswest * SECS_PER_MIN; + } else if (!sbi->options.tz_utc) { second += sys_tz.tz_minuteswest * SECS_PER_MIN; + } if (time_cs) { ts->tv_sec = second + (time_cs / 100); @@ -208,8 +219,11 @@ time_t second = ts->tv_sec; time_t day, leap_day, month, year; - if (!sbi->options.tz_utc) + if ( sbi->options.tz_minuteswest ) { + second -= sbi->options.tz_minuteswest * SECS_PER_MIN; + } else if (!sbi->options.tz_utc) { second -= sys_tz.tz_minuteswest * SECS_PER_MIN; + } /* Jan 1 GMT 00:00:00 1980. But what about another time zone? */ if (second < UNIX_SECS_1980) {