diff options
author | Erik Andersen | 2000-03-13 04:07:02 +0000 |
---|---|---|
committer | Erik Andersen | 2000-03-13 04:07:02 +0000 |
commit | ce91732416d3fb68ebf527ec839e8f810ea65ebd (patch) | |
tree | 23f70e6e90faa8e7f8aac7d336fe88bbf646efeb /util-linux | |
parent | 3522eb1ab3a4f1bcbf2c0f0eed387733b29c9e95 (diff) | |
download | busybox-ce91732416d3fb68ebf527ec839e8f810ea65ebd.zip busybox-ce91732416d3fb68ebf527ec839e8f810ea65ebd.tar.gz |
Some bug fixes I forgot to check-in the other day.
Mounting loop devices w/o specifying the filesystem
type choked if it didn't guess right the first time.
-Erik
Diffstat (limited to 'util-linux')
-rw-r--r-- | util-linux/mount.c | 3 | ||||
-rw-r--r-- | util-linux/umount.c | 15 |
2 files changed, 15 insertions, 3 deletions
diff --git a/util-linux/mount.c b/util-linux/mount.c index c29be51..336cff7 100644 --- a/util-linux/mount.c +++ b/util-linux/mount.c @@ -142,7 +142,6 @@ do_mount(char *specialfile, char *dir, char *filesystemtype, fprintf(stderr, "WARNING: loop device is read-only\n"); flags &= ~MS_RDONLY; } - use_loop = FALSE; } #endif status = @@ -415,10 +414,10 @@ extern int mount_main(int argc, char **argv) case 'a': all = TRUE; break; -#ifdef BB_MTAB case 'f': fakeIt = TRUE; break; +#ifdef BB_MTAB case 'n': useMtab = FALSE; break; diff --git a/util-linux/umount.c b/util-linux/umount.c index 0f087e1..b0f393c 100644 --- a/util-linux/umount.c +++ b/util-linux/umount.c @@ -41,6 +41,9 @@ static const char umount_usage[] = #ifdef BB_FEATURE_REMOUNT "\t-r:\tTry to remount devices as read-only if mount is busy\n" #endif +#if defined BB_FEATURE_MOUNT_LOOP + "\t-f:\tDo not free loop device (if a loop device has been used)\n" +#endif ; struct _mtab_entry_t { @@ -53,9 +56,14 @@ static struct _mtab_entry_t *mtab_cache = NULL; +#if defined BB_FEATURE_MOUNT_LOOP +static int freeLoop = TRUE; +#endif static int useMtab = TRUE; static int umountAll = FALSE; +#if defined BB_FEATURE_REMOUNT static int doRemount = FALSE; +#endif extern const char mtab_file[]; /* Defined in utility.c */ @@ -167,7 +175,7 @@ static int do_umount(const char *name, int useMtab) status = umount(name); #if defined BB_FEATURE_MOUNT_LOOP - if (blockDevice != NULL && !strncmp("/dev/loop", blockDevice, 9)) + if (freeLoop == TRUE && blockDevice != NULL && !strncmp("/dev/loop", blockDevice, 9)) /* this was a loop device, delete it */ del_loop(blockDevice); #endif @@ -236,6 +244,11 @@ extern int umount_main(int argc, char **argv) case 'a': umountAll = TRUE; break; +#if defined BB_FEATURE_MOUNT_LOOP + case 'f': + freeLoop = FALSE; + break; +#endif #ifdef BB_MTAB case 'n': useMtab = FALSE; |