* PATCH: fix FAT32 filesystems on 64-bit platforms
@ 2000-12-15 0:09 Bill Nottingham
2000-12-15 7:08 ` Albert D. Cahalan
0 siblings, 1 reply; 2+ messages in thread
From: Bill Nottingham @ 2000-12-15 0:09 UTC (permalink / raw)
To: linux-kernel; +Cc: torvalds, chaffee
[-- Attachment #1: Type: text/plain, Size: 161 bytes --]
This fixes FAT32 on 64-bit platforms (notably, IA-64 and Alpha);
without this you can't mount any FAT32 filesystems. A similar patch
is already in 2.2.18.
Bill
[-- Attachment #2: linux-2.4.0-test12-vfat.patch --]
[-- Type: text/plain, Size: 1606 bytes --]
--- linux/fs/fat/cache.c.foo Sat Nov 25 16:30:47 2000
+++ linux/fs/fat/cache.c Sat Nov 25 16:32:29 2000
@@ -70,7 +70,7 @@
}
if (MSDOS_SB(sb)->fat_bits == 32) {
p_first = p_last = NULL; /* GCC needs that stuff */
- next = CF_LE_L(((unsigned long *) bh->b_data)[(first &
+ next = CF_LE_L(((__u32 *) bh->b_data)[(first &
(SECTOR_SIZE-1)) >> 2]);
/* Fscking Microsoft marketing department. Their "32" is 28. */
next &= 0xfffffff;
@@ -79,12 +79,12 @@
} else if (MSDOS_SB(sb)->fat_bits == 16) {
p_first = p_last = NULL; /* GCC needs that stuff */
- next = CF_LE_W(((unsigned short *) bh->b_data)[(first &
+ next = CF_LE_W(((__u16 *) bh->b_data)[(first &
(SECTOR_SIZE-1)) >> 1]);
if (next >= 0xfff7) next = -1;
} else {
- p_first = &((unsigned char *) bh->b_data)[first & (SECTOR_SIZE-1)];
- p_last = &((unsigned char *) bh2->b_data)[(first+1) &
+ p_first = &((__u8 *) bh->b_data)[first & (SECTOR_SIZE-1)];
+ p_last = &((__u8 *) bh2->b_data)[(first+1) &
(SECTOR_SIZE-1)];
if (nr & 1) next = ((*p_first >> 4) | (*p_last << 4)) & 0xfff;
else next = (*p_first+(*p_last << 8)) & 0xfff;
@@ -92,10 +92,10 @@
}
if (new_value != -1) {
if (MSDOS_SB(sb)->fat_bits == 32) {
- ((unsigned long *) bh->b_data)[(first & (SECTOR_SIZE-1)) >>
+ ((__u32 *) bh->b_data)[(first & (SECTOR_SIZE-1)) >>
2] = CT_LE_L(new_value);
} else if (MSDOS_SB(sb)->fat_bits == 16) {
- ((unsigned short *) bh->b_data)[(first & (SECTOR_SIZE-1)) >>
+ ((__u16 *) bh->b_data)[(first & (SECTOR_SIZE-1)) >>
1] = CT_LE_W(new_value);
} else {
if (nr & 1) {
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: PATCH: fix FAT32 filesystems on 64-bit platforms
2000-12-15 0:09 PATCH: fix FAT32 filesystems on 64-bit platforms Bill Nottingham
@ 2000-12-15 7:08 ` Albert D. Cahalan
0 siblings, 0 replies; 2+ messages in thread
From: Albert D. Cahalan @ 2000-12-15 7:08 UTC (permalink / raw)
To: Bill Nottingham; +Cc: linux-kernel, torvalds, chaffee
> This fixes FAT32 on 64-bit platforms (notably, IA-64 and Alpha);
> without this you can't mount any FAT32 filesystems. A similar patch
> is already in 2.2.18.
...
> - next = CF_LE_L(((unsigned long *) bh->b_data)[(first &
> + next = CF_LE_L(((__u32 *) bh->b_data)[(first &
...
> - next = CF_LE_W(((unsigned short *) bh->b_data)[(first &
> + next = CF_LE_W(((__u16 *) bh->b_data)[(first &
These macros really ought to be replaced with the standard
le32_to_cpu() and le16_to_cpu() ones.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2000-12-15 7:38 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-12-15 0:09 PATCH: fix FAT32 filesystems on 64-bit platforms Bill Nottingham
2000-12-15 7:08 ` Albert D. Cahalan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).