ChangeSet 1.2231.1.175, 2005/03/28 20:05:04-08:00, [EMAIL PROTECTED]
[PATCH] fs/hpfs/*: fix HPFS support under 64-bit kernel
The provided patch fixes HPFS filesystem support under 64-bit Linux
kernel
and closes the bugreport http://bugme.osdl.org/show_bug.cgi?id=4333
The problem is in 'time_t' size which is 8 bytes on 64-bit systems
(comparing to 4 bytes on 32-bit systems). The patch introduces local
'time32_t' type of the fixed size 4 and uses it where required.
Cc: Mikulas Patocka <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
hpfs.h | 12 +++++++-----
hpfs_fn.h | 4 ++--
2 files changed, 9 insertions(+), 7 deletions(-)
diff -Nru a/fs/hpfs/hpfs.h b/fs/hpfs/hpfs.h
--- a/fs/hpfs/hpfs.h 2005-03-28 21:45:04 -08:00
+++ b/fs/hpfs/hpfs.h 2005-03-28 21:45:04 -08:00
@@ -27,6 +27,8 @@
typedef secno fnode_secno; /* sector number of an fnode */
typedef secno anode_secno; /* sector number of an anode */
+typedef u32 time32_t; /* 32-bit time_t type */
+
/* sector 0 */
/* The boot block is very like a FAT boot block, except that the
@@ -84,9 +86,9 @@
unsigned zero1; /* 0 */
secno badblocks; /* bad block list */
unsigned zero3; /* 0 */
- time_t last_chkdsk; /* date last checked, 0 if never */
+ time32_t last_chkdsk; /* date last checked, 0 if
never */
/*unsigned zero4;*/ /* 0 */
- time_t last_optimize; /* date last optimized, 0 if
never */
+ time32_t last_optimize; /* date last optimized, 0 if
never */
secno n_dir_band; /* number of sectors in dir band */
secno dir_band_start; /* first sector in dir band */
secno dir_band_end; /* last sector in dir band */
@@ -287,10 +289,10 @@
unsigned not_8x3: 1; /* name is not 8.3 */
unsigned flag15: 1;
fnode_secno fnode; /* fnode giving allocation info */
- time_t write_date; /* mtime */
+ time32_t write_date; /* mtime */
unsigned file_size; /* file length, bytes */
- time_t read_date; /* atime */
- time_t creation_date; /* ctime */
+ time32_t read_date; /* atime */
+ time32_t creation_date; /* ctime */
unsigned ea_size; /* total EA length, bytes */
unsigned char no_of_acls : 3; /* number of ACL's */
unsigned char reserver : 5;
diff -Nru a/fs/hpfs/hpfs_fn.h b/fs/hpfs/hpfs_fn.h
--- a/fs/hpfs/hpfs_fn.h 2005-03-28 21:45:04 -08:00
+++ b/fs/hpfs/hpfs_fn.h 2005-03-28 21:45:04 -08:00
@@ -325,13 +325,13 @@
* local time (HPFS) to GMT (Unix)
*/
-static inline time_t local_to_gmt(struct super_block *s, time_t t)
+static inline time_t local_to_gmt(struct super_block *s, time32_t t)
{
extern struct timezone sys_tz;
return t + sys_tz.tz_minuteswest * 60 + hpfs_sb(s)->sb_timeshift;
}
-static inline time_t gmt_to_local(struct super_block *s, time_t t)
+static inline time32_t gmt_to_local(struct super_block *s, time_t t)
{
extern struct timezone sys_tz;
return t - sys_tz.tz_minuteswest * 60 - hpfs_sb(s)->sb_timeshift;
-
To unsubscribe from this list: send the line "unsubscribe bk-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html