summaryrefslogtreecommitdiffstats
path: root/loader/devices.c
diff options
context:
space:
mode:
authorErik Troan <ewt@redhat.com>2000-05-08 21:44:10 +0000
committerErik Troan <ewt@redhat.com>2000-05-08 21:44:10 +0000
commit855ecf695a4d0a43e588074c51a7025ec052b6b9 (patch)
tree6802f24abb9608aa9da2195335aa4a14c99a899d /loader/devices.c
parent9b77e054fd055375b989cd16b04d32cfa7e3f5f9 (diff)
downloadanaconda-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.c20
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) {