diff options
author | Erik Troan <ewt@redhat.com> | 2000-05-08 21:44:10 +0000 |
---|---|---|
committer | Erik Troan <ewt@redhat.com> | 2000-05-08 21:44:10 +0000 |
commit | 855ecf695a4d0a43e588074c51a7025ec052b6b9 (patch) | |
tree | 6802f24abb9608aa9da2195335aa4a14c99a899d /loader/devices.c | |
parent | 9b77e054fd055375b989cd16b04d32cfa7e3f5f9 (diff) | |
download | anaconda-855ecf695a4d0a43e588074c51a7025ec052b6b9.tar.gz anaconda-855ecf695a4d0a43e588074c51a7025ec052b6b9.tar.xz anaconda-855ecf695a4d0a43e588074c51a7025ec052b6b9.zip |
driver disks should completely work now
Diffstat (limited to 'loader/devices.c')
-rw-r--r-- | loader/devices.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/loader/devices.c b/loader/devices.c index f7b8c072d..e534bcaba 100644 --- a/loader/devices.c +++ b/loader/devices.c @@ -137,7 +137,8 @@ static int getModuleArgs(struct moduleInfo * mod, char *** argPtr) { } int devInitDriverDisk(moduleInfoSet modInfo, moduleList modLoaded, - moduleDeps *modDepsPtr, int flags, char * mntPoint) { + moduleDeps *modDepsPtr, int flags, char * mntPoint, + int removeable) { int badDisk = 0; char from[200]; struct stat sb; @@ -171,7 +172,12 @@ int devInitDriverDisk(moduleInfoSet modInfo, moduleList modLoaded, close(fd); sprintf(from, "%s/modinfo", mntPoint); - fd = isysReadModuleInfo(from, modInfo, diskName); + + if (removeable) + fd = isysReadModuleInfo(from, modInfo, MI_LOCATION_DISKNAME, diskName); + else + fd = isysReadModuleInfo(from, modInfo, MI_LOCATION_DIRECTORY, + mntPoint); sprintf(from, "%s/modules.dep", mntPoint); mlLoadDeps(modDepsPtr, from); @@ -201,8 +207,8 @@ int devLoadDriverDisk(moduleInfoSet modInfo, moduleList modLoaded, if (rc == 2) return LOADER_BACK; - mlLoadModule("vfat", NULL, modLoaded, (*modDepsPtr), NULL, - modInfo, flags); + mlLoadModule("vfat", MI_LOCATION_NONE, NULL, modLoaded, (*modDepsPtr), + NULL, modInfo, flags); devMakeInode("fd0", "/tmp/fd0"); @@ -212,7 +218,7 @@ int devLoadDriverDisk(moduleInfoSet modInfo, moduleList modLoaded, _("Failed to mount driver disk.")); if (devInitDriverDisk(modInfo, modLoaded, modDepsPtr, - flags, "/tmp/drivers")) + flags, "/tmp/drivers", 1)) newtWinMessage(_("Error"), _("OK"), _("The floppy disk you inserted is not a valid driver disk " "for this release of Red Hat Linux.")); @@ -366,8 +372,8 @@ int devDeviceMenu(enum driverMajor type, moduleInfoSet modInfo, scsiWindow(mod->moduleName); sleep(1); } - rc = mlLoadModule(mod->moduleName, mod->locationID, modLoaded, *modDepsPtr, - args, modInfo, flags); + rc = mlLoadModule(mod->moduleName, mod->location, mod->locationID, + modLoaded, *modDepsPtr, args, modInfo, flags); if (mod->major == DRIVER_SCSI) newtPopWindow(); if (args) { |