diff options
| author | Erik Andersen <andersen@codepoet.org> | 2000-03-13 04:07:02 +0000 |
|---|---|---|
| committer | Erik Andersen <andersen@codepoet.org> | 2000-03-13 04:07:02 +0000 |
| commit | ce91732416d3fb68ebf527ec839e8f810ea65ebd (patch) | |
| tree | 23f70e6e90faa8e7f8aac7d336fe88bbf646efeb | |
| parent | 3522eb1ab3a4f1bcbf2c0f0eed387733b29c9e95 (diff) | |
| download | busybox-w32-ce91732416d3fb68ebf527ec839e8f810ea65ebd.tar.gz busybox-w32-ce91732416d3fb68ebf527ec839e8f810ea65ebd.tar.bz2 busybox-w32-ce91732416d3fb68ebf527ec839e8f810ea65ebd.zip | |
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
| -rw-r--r-- | Changelog | 2 | ||||
| -rw-r--r-- | mount.c | 3 | ||||
| -rw-r--r-- | umount.c | 15 | ||||
| -rw-r--r-- | util-linux/mount.c | 3 | ||||
| -rw-r--r-- | util-linux/umount.c | 15 |
5 files changed, 32 insertions, 6 deletions
| @@ -45,6 +45,8 @@ | |||
| 45 | * Fixed a bug where "sed 's/foo/bar/g'" (i.e. a script w/o a "-e") | 45 | * Fixed a bug where "sed 's/foo/bar/g'" (i.e. a script w/o a "-e") |
| 46 | * ps now supports BB_FEATURE_AUTOWIDTH, and can adjust its width | 46 | * ps now supports BB_FEATURE_AUTOWIDTH, and can adjust its width |
| 47 | to match the terminal (defaults to width=79 when this is off). | 47 | to match the terminal (defaults to width=79 when this is off). |
| 48 | * Fixed mount'ing loop devices when the filesystem type was not | ||
| 49 | specified. It used to revert to non-loop after the first try. | ||
| 48 | 50 | ||
| 49 | 51 | ||
| 50 | -Erik Andersen | 52 | -Erik Andersen |
| @@ -142,7 +142,6 @@ do_mount(char *specialfile, char *dir, char *filesystemtype, | |||
| 142 | fprintf(stderr, "WARNING: loop device is read-only\n"); | 142 | fprintf(stderr, "WARNING: loop device is read-only\n"); |
| 143 | flags &= ~MS_RDONLY; | 143 | flags &= ~MS_RDONLY; |
| 144 | } | 144 | } |
| 145 | use_loop = FALSE; | ||
| 146 | } | 145 | } |
| 147 | #endif | 146 | #endif |
| 148 | status = | 147 | status = |
| @@ -415,10 +414,10 @@ extern int mount_main(int argc, char **argv) | |||
| 415 | case 'a': | 414 | case 'a': |
| 416 | all = TRUE; | 415 | all = TRUE; |
| 417 | break; | 416 | break; |
| 418 | #ifdef BB_MTAB | ||
| 419 | case 'f': | 417 | case 'f': |
| 420 | fakeIt = TRUE; | 418 | fakeIt = TRUE; |
| 421 | break; | 419 | break; |
| 420 | #ifdef BB_MTAB | ||
| 422 | case 'n': | 421 | case 'n': |
| 423 | useMtab = FALSE; | 422 | useMtab = FALSE; |
| 424 | break; | 423 | break; |
| @@ -41,6 +41,9 @@ static const char umount_usage[] = | |||
| 41 | #ifdef BB_FEATURE_REMOUNT | 41 | #ifdef BB_FEATURE_REMOUNT |
| 42 | "\t-r:\tTry to remount devices as read-only if mount is busy\n" | 42 | "\t-r:\tTry to remount devices as read-only if mount is busy\n" |
| 43 | #endif | 43 | #endif |
| 44 | #if defined BB_FEATURE_MOUNT_LOOP | ||
| 45 | "\t-f:\tDo not free loop device (if a loop device has been used)\n" | ||
| 46 | #endif | ||
| 44 | ; | 47 | ; |
| 45 | 48 | ||
| 46 | struct _mtab_entry_t { | 49 | struct _mtab_entry_t { |
| @@ -53,9 +56,14 @@ static struct _mtab_entry_t *mtab_cache = NULL; | |||
| 53 | 56 | ||
| 54 | 57 | ||
| 55 | 58 | ||
| 59 | #if defined BB_FEATURE_MOUNT_LOOP | ||
| 60 | static int freeLoop = TRUE; | ||
| 61 | #endif | ||
| 56 | static int useMtab = TRUE; | 62 | static int useMtab = TRUE; |
| 57 | static int umountAll = FALSE; | 63 | static int umountAll = FALSE; |
| 64 | #if defined BB_FEATURE_REMOUNT | ||
| 58 | static int doRemount = FALSE; | 65 | static int doRemount = FALSE; |
| 66 | #endif | ||
| 59 | extern const char mtab_file[]; /* Defined in utility.c */ | 67 | extern const char mtab_file[]; /* Defined in utility.c */ |
| 60 | 68 | ||
| 61 | 69 | ||
| @@ -167,7 +175,7 @@ static int do_umount(const char *name, int useMtab) | |||
| 167 | status = umount(name); | 175 | status = umount(name); |
| 168 | 176 | ||
| 169 | #if defined BB_FEATURE_MOUNT_LOOP | 177 | #if defined BB_FEATURE_MOUNT_LOOP |
| 170 | if (blockDevice != NULL && !strncmp("/dev/loop", blockDevice, 9)) | 178 | if (freeLoop == TRUE && blockDevice != NULL && !strncmp("/dev/loop", blockDevice, 9)) |
| 171 | /* this was a loop device, delete it */ | 179 | /* this was a loop device, delete it */ |
| 172 | del_loop(blockDevice); | 180 | del_loop(blockDevice); |
| 173 | #endif | 181 | #endif |
| @@ -236,6 +244,11 @@ extern int umount_main(int argc, char **argv) | |||
| 236 | case 'a': | 244 | case 'a': |
| 237 | umountAll = TRUE; | 245 | umountAll = TRUE; |
| 238 | break; | 246 | break; |
| 247 | #if defined BB_FEATURE_MOUNT_LOOP | ||
| 248 | case 'f': | ||
| 249 | freeLoop = FALSE; | ||
| 250 | break; | ||
| 251 | #endif | ||
| 239 | #ifdef BB_MTAB | 252 | #ifdef BB_MTAB |
| 240 | case 'n': | 253 | case 'n': |
| 241 | useMtab = FALSE; | 254 | useMtab = FALSE; |
diff --git a/util-linux/mount.c b/util-linux/mount.c index c29be5106..336cff7d2 100644 --- a/util-linux/mount.c +++ b/util-linux/mount.c | |||
| @@ -142,7 +142,6 @@ do_mount(char *specialfile, char *dir, char *filesystemtype, | |||
| 142 | fprintf(stderr, "WARNING: loop device is read-only\n"); | 142 | fprintf(stderr, "WARNING: loop device is read-only\n"); |
| 143 | flags &= ~MS_RDONLY; | 143 | flags &= ~MS_RDONLY; |
| 144 | } | 144 | } |
| 145 | use_loop = FALSE; | ||
| 146 | } | 145 | } |
| 147 | #endif | 146 | #endif |
| 148 | status = | 147 | status = |
| @@ -415,10 +414,10 @@ extern int mount_main(int argc, char **argv) | |||
| 415 | case 'a': | 414 | case 'a': |
| 416 | all = TRUE; | 415 | all = TRUE; |
| 417 | break; | 416 | break; |
| 418 | #ifdef BB_MTAB | ||
| 419 | case 'f': | 417 | case 'f': |
| 420 | fakeIt = TRUE; | 418 | fakeIt = TRUE; |
| 421 | break; | 419 | break; |
| 420 | #ifdef BB_MTAB | ||
| 422 | case 'n': | 421 | case 'n': |
| 423 | useMtab = FALSE; | 422 | useMtab = FALSE; |
| 424 | break; | 423 | break; |
diff --git a/util-linux/umount.c b/util-linux/umount.c index 0f087e197..b0f393cca 100644 --- a/util-linux/umount.c +++ b/util-linux/umount.c | |||
| @@ -41,6 +41,9 @@ static const char umount_usage[] = | |||
| 41 | #ifdef BB_FEATURE_REMOUNT | 41 | #ifdef BB_FEATURE_REMOUNT |
| 42 | "\t-r:\tTry to remount devices as read-only if mount is busy\n" | 42 | "\t-r:\tTry to remount devices as read-only if mount is busy\n" |
| 43 | #endif | 43 | #endif |
| 44 | #if defined BB_FEATURE_MOUNT_LOOP | ||
| 45 | "\t-f:\tDo not free loop device (if a loop device has been used)\n" | ||
| 46 | #endif | ||
| 44 | ; | 47 | ; |
| 45 | 48 | ||
| 46 | struct _mtab_entry_t { | 49 | struct _mtab_entry_t { |
| @@ -53,9 +56,14 @@ static struct _mtab_entry_t *mtab_cache = NULL; | |||
| 53 | 56 | ||
| 54 | 57 | ||
| 55 | 58 | ||
| 59 | #if defined BB_FEATURE_MOUNT_LOOP | ||
| 60 | static int freeLoop = TRUE; | ||
| 61 | #endif | ||
| 56 | static int useMtab = TRUE; | 62 | static int useMtab = TRUE; |
| 57 | static int umountAll = FALSE; | 63 | static int umountAll = FALSE; |
| 64 | #if defined BB_FEATURE_REMOUNT | ||
| 58 | static int doRemount = FALSE; | 65 | static int doRemount = FALSE; |
| 66 | #endif | ||
| 59 | extern const char mtab_file[]; /* Defined in utility.c */ | 67 | extern const char mtab_file[]; /* Defined in utility.c */ |
| 60 | 68 | ||
| 61 | 69 | ||
| @@ -167,7 +175,7 @@ static int do_umount(const char *name, int useMtab) | |||
| 167 | status = umount(name); | 175 | status = umount(name); |
| 168 | 176 | ||
| 169 | #if defined BB_FEATURE_MOUNT_LOOP | 177 | #if defined BB_FEATURE_MOUNT_LOOP |
| 170 | if (blockDevice != NULL && !strncmp("/dev/loop", blockDevice, 9)) | 178 | if (freeLoop == TRUE && blockDevice != NULL && !strncmp("/dev/loop", blockDevice, 9)) |
| 171 | /* this was a loop device, delete it */ | 179 | /* this was a loop device, delete it */ |
| 172 | del_loop(blockDevice); | 180 | del_loop(blockDevice); |
| 173 | #endif | 181 | #endif |
| @@ -236,6 +244,11 @@ extern int umount_main(int argc, char **argv) | |||
| 236 | case 'a': | 244 | case 'a': |
| 237 | umountAll = TRUE; | 245 | umountAll = TRUE; |
| 238 | break; | 246 | break; |
| 247 | #if defined BB_FEATURE_MOUNT_LOOP | ||
| 248 | case 'f': | ||
| 249 | freeLoop = FALSE; | ||
| 250 | break; | ||
| 251 | #endif | ||
| 239 | #ifdef BB_MTAB | 252 | #ifdef BB_MTAB |
| 240 | case 'n': | 253 | case 'n': |
| 241 | useMtab = FALSE; | 254 | useMtab = FALSE; |
