[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

mount() fun ...

As I mentioned a while back I intended to add a facility to allow one
Minixfs filesystem to be mounted on another. I was somewhat sidetracked
by the problems with disk access for pl7->pl8, so it's only now that I've
embarked upon it.
          The code for mounting seems OK, but there is a problem with
umounting. One of the problems with mounting is that say drive D: is mounted
on E: . If the current dir is in D: and I do a 'cd \' then I want to end up
in the root dir of E:, this necessitates setting the root cookie of D: to
the root dir of E:. This is no problem, just force a disk change of D: and
then the new fs->root calls pull the right dir and alls well.
          The problem is how to change the root cookie back to D: when I'm
umounting. A quick look at changedrv in filesys.c should highlight the
problem. If I change drive D: then the root cookies of D: wont get set back
because their dev field is now E:. If I change E: I'll get the ability to
change the cookies of D: back but I'll also get the E: ones as well, which
I want to stay the same!
          Any ideas anyone, or is some kernel modding required (which is no
problem apart from inability to umount with previous MiNT versions).