Bug 21151 - Mounting FAT32 file system fails
Mounting FAT32 file system fails
Status: CLOSED RAWHIDE
Product: Red Hat Linux
Classification: Retired
Component: kernel (Show other bugs)
7.3
ia64 Linux
high Severity high
: ---
: ---
Assigned To: Michael K. Johnson
Brock Organ
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2000-11-20 18:05 EST by Matt Domsch
Modified: 2005-10-31 17:00 EST (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2000-11-28 00:13:12 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Matt Domsch 2000-11-20 18:05:24 EST
Mounting of a FAT32-formatted file system fails on IA-64.  Same works on
IA-32.


  (use fdisk to make one big sdb1 partition, 18GB or so) 
  mkdosfs -F 32 /dev/sdb1 
  mount /dev/sdb1 /mnt/fat32-1 

  On IA-64, I get the following error: 
  Directory 1: bad FAT    (from linux/fs/fat/inode.c) 
  File system panic (dev 08:11) 
    FAT error             (from linux/fs/fat/misc.c) 
    File system has been set read-only. 

  If the file system previously existed (created by any other tool), after
the (read-only) mount, I can only see garbage.
Comment 1 Matt Domsch 2000-11-20 18:10:05 EST
kernel 2.4.0-0.34 (2.4.0-test9) is where this fails.
Comment 2 Bill Nottingham 2000-11-21 11:55:29 EST
Persists in 2.4.0-test10.
Comment 3 Bill Nottingham 2000-11-21 12:02:35 EST
Works in test11 on an ia32 box.

Oddly, the filesystem was made on an ia32, so it's not a problem with mkdosfs.
Comment 4 Matt Domsch 2000-11-21 12:08:22 EST
I've never seen this fail on IA-32, regardless of kernel.
Comment 5 Matt Domsch 2000-11-21 12:13:21 EST
Sizeof(fat_boot_sector,fat_boot_fsinfo,msdos_dir_entry,msdos_dir_slot) are all 
identical between IA-32 and IA-64.  vfat_slot_info is different, but only 
because loff_t changes size, but that isn't stored on-disk (I don't think).

#define MODULE
#define __KERNEL__
#define MODVERSIONS
#include <linux/module.h>

#include <linux/modversions.h>


#include <linux/config.h>
#include <linux/fs.h>
#include <linux/kernel.h>
#include <linux/string.h>

#include <linux/msdos_fs.h>

int
init_module(void)
{
  printk("sizeof(struct fat_boot_sector) = %d\n", sizeof(struct fat_boot_sector)
);
  printk("sizeof(struct fat_boot_fsinfo) = %d\n", sizeof(struct fat_boot_fsinfo)
);
  printk("sizeof(struct msdos_dir_entry) = %d\n", sizeof(struct msdos_dir_entry)
);
  printk("sizeof(struct msdos_dir_slot) = %d\n", sizeof(struct msdos_dir_slot));
  printk("sizeof(struct vfat_slot_info) = %d\n", sizeof(struct vfat_slot_info));

  return 0;
}

void
cleanup_module(void)
{
}
Comment 6 Bill Nottingham 2000-11-28 00:13:05 EST
Fixed in kernel24-2.4.0-0.41 (and 2.2.18pre23, FWIW).

Note You need to log in before you can comment on or make changes to this bug.