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
This commit is contained in:
parent
3522eb1ab3
commit
ce91732416
@ -45,6 +45,8 @@
|
||||
* Fixed a bug where "sed 's/foo/bar/g'" (i.e. a script w/o a "-e")
|
||||
* ps now supports BB_FEATURE_AUTOWIDTH, and can adjust its width
|
||||
to match the terminal (defaults to width=79 when this is off).
|
||||
* Fixed mount'ing loop devices when the filesystem type was not
|
||||
specified. It used to revert to non-loop after the first try.
|
||||
|
||||
|
||||
-Erik Andersen
|
||||
|
3
mount.c
3
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;
|
||||
|
15
umount.c
15
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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user