mount: handle list of comma-separated fs types in -t option
Allows one to specify list of filesystem types to be tried when mounting particular device. E.g. mount -t vfat,ext2 ... Signed-off-by: Karol Lewandowski <k.lewandowsk@samsung.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
f85554c265
commit
b5ebe5fdb3
@ -38,7 +38,7 @@
|
||||
//usage: )
|
||||
//usage: "\n -r Read-only mount"
|
||||
//usage: "\n -w Read-write mount (default)"
|
||||
//usage: "\n -t FSTYPE Filesystem type"
|
||||
//usage: "\n -t FSTYPE[,...] Filesystem type(s)"
|
||||
//usage: "\n -O OPT Mount only filesystems with option OPT (-a only)"
|
||||
//usage: "\n-o OPT:"
|
||||
//usage: IF_FEATURE_MOUNT_LOOP(
|
||||
@ -1827,7 +1827,16 @@ static int singlemount(struct mntent *mp, int ignore_busy)
|
||||
// If we know the fstype (or don't need to), jump straight
|
||||
// to the actual mount.
|
||||
if (mp->mnt_type || (vfsflags & (MS_REMOUNT | MS_BIND | MS_MOVE))) {
|
||||
rc = mount_it_now(mp, vfsflags, filteropts);
|
||||
char *next;
|
||||
for (;;) {
|
||||
next = mp->mnt_type ? strchr(mp->mnt_type, ',') : NULL;
|
||||
if (next)
|
||||
*next = '\0';
|
||||
rc = mount_it_now(mp, vfsflags, filteropts);
|
||||
if (rc == 0 || !next)
|
||||
break;
|
||||
mp->mnt_type = next + 1;
|
||||
}
|
||||
} else {
|
||||
// Loop through filesystem types until mount succeeds
|
||||
// or we run out
|
||||
@ -1844,7 +1853,7 @@ static int singlemount(struct mntent *mp, int ignore_busy)
|
||||
for (fl = fslist; fl; fl = fl->link) {
|
||||
mp->mnt_type = fl->data;
|
||||
rc = mount_it_now(mp, vfsflags, filteropts);
|
||||
if (!rc)
|
||||
if (rc == 0)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user