home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.os.linux
- Path: sparky!uunet!zaphod.mps.ohio-state.edu!caen!destroyer!ubc-cs!news.UVic.CA!sanjuan!pmacdona
- From: pmacdona@sanjuan (Peter MacDonald)
- Subject: auto-detect fs type on mount
- Message-ID: <1992Jul25.162011.1956@sol.UVic.CA>
- Sender: news@sol.UVic.CA
- Nntp-Posting-Host: sanjuan.uvic.ca
- Organization: University of Victoria, Victoria, BC, CANADA
- Date: Sat, 25 Jul 92 16:20:11 GMT
- Lines: 57
-
- Here is a simple patch to allow the kernel to try to auto
- detect the FS type upon a mount request with no type
- specified, or with a type of "-". Actually, as you can see,
- it just changes sys_mount to try the three current types,
- minix, ext, and msdos. We should probably get rid of
- the "magic match" msg. Also, overwriting the dev_name
- field with the FS type upon return may not be acceptable?
-
- I am sending this to Linus as well, since I am not entirely
- sure he can keep up with reading this group anymore :-)
-
- Peter (pmacdona@tadpole.bcsc.gov.bc.ca, pmacdona@sanjuan.uvic.ca)
- ----------------------------------------------------------------
-
- *** super.c.save Sat Jul 25 07:32:30 1992
- --- super.c Sat Jul 25 08:58:28 1992
- ***************
- *** 275,288 ****
- i = 4095;
- memcpy_fromfs((void *) page,data,i);
- }
- ! if (type) {
- for (i = 0 ; i < 100 ; i++)
- if (!(tmp[i] = get_fs_byte(type++)))
- break;
- t = tmp;
- ! } else
- ! t = "minix";
- ! retval = do_mount(dev,dir_name,t,flags,(void *) page);
- free_page(page);
- return retval;
- }
- --- 275,297 ----
- i = 4095;
- memcpy_fromfs((void *) page,data,i);
- }
- ! if (!type || ('-' == get_fs_byte(type))) {
- ! if (0 == (retval = do_mount(dev,dir_name,"minix",flags,(void *) page)))
- ! put_fs_byte('m', dev_name);
- ! else
- ! if (0 == (retval = do_mount(dev,dir_name,"ext",flags,(void *) page)))
- ! put_fs_byte('e', dev_name);
- ! else
- ! if (0 == (retval = do_mount(dev,dir_name,"msdos",flags,(void *) page)))
- ! put_fs_byte('m', dev_name);
- !
- ! } else {
- for (i = 0 ; i < 100 ; i++)
- if (!(tmp[i] = get_fs_byte(type++)))
- break;
- t = tmp;
- ! retval = do_mount(dev,dir_name,t,flags,(void *) page);
- ! }
- free_page(page);
- return retval;
- }
-
-