Bug#94159: e2fsck: incorrectly parallelizes checks on the same spindle when using devfs
Package: e2fsprogs
Severity: minor
> On Mon, Apr 16, 2001 at 09:51:25PM +1000, Brian May wrote:
> > Hello,
> >
> > I identified a problem with e2fsck: It wanted to check all five partitions
> > at the same time!
> >
> > >From /etc/fstab:
> >
> > /dev/discs/disc1/part5 /var/spool/squid ext2 defaults 0 2
> > /dev/discs/disc1/part7 /old/homes ext2 defaults,usrquota 0 2
> > /dev/discs/disc1/part9 /old/home ext2 defaults,usrquota 0 2
> >
> > /dev/discs/disc1/part8 /nfsroot ext2 defaults 0 2
> > /dev/discs/disc1/part10 /mirror ext2 defaults 0 2
> >
> > normally I wouldn't care, but considering this harddisk is showing
> > signs of dying, I don't think the extra thrashing this would have
> > caused would have done any good.
The parallelizing fsck frontend is supposed to only share the load between
spindles. The logic in misc/fsck.c tries to do this by comparing the first
part of the device name:
static const char *base_devices[] = {
"/dev/hda",
"/dev/hdb",
"/dev/hdc",
"/dev/hdd",
"/dev/hde",
"/dev/hdf",
"/dev/hdg",
"/dev/hdh",
"/dev/hd1a",
"/dev/hd1b",
"/dev/hd1c",
"/dev/hd1d",
"/dev/sda",
"/dev/sdb",
"/dev/sdc",
"/dev/sdd",
"/dev/sde",
"/dev/sdf",
"/dev/sdg",
NULL
};
A better way might be to use the major/minor device numbers. Just
/dev/dists/disc{0,1,...} is no good because many of us use the full device path
(e.g. /dev/scsi/host1/bus0/target0/lun0/part0).
--
- mdz
Reply to: