Changeset 3232 in MondoRescue for branches/3.2/mindi-busybox/util-linux/umount.c
- Timestamp:
- Jan 1, 2014, 12:47:38 AM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/3.2/mindi-busybox/util-linux/umount.c
r2725 r3232 8 8 * Licensed under GPLv2, see file LICENSE in this source tree. 9 9 */ 10 11 //usage:#define umount_trivial_usage 12 //usage: "[OPTIONS] FILESYSTEM|DIRECTORY" 13 //usage:#define umount_full_usage "\n\n" 14 //usage: "Unmount file systems\n" 15 //usage: IF_FEATURE_UMOUNT_ALL( 16 //usage: "\n -a Unmount all file systems" IF_FEATURE_MTAB_SUPPORT(" in /etc/mtab") 17 //usage: ) 18 //usage: IF_FEATURE_MTAB_SUPPORT( 19 //usage: "\n -n Don't erase /etc/mtab entries" 20 //usage: ) 21 //usage: "\n -r Try to remount devices as read-only if mount is busy" 22 //usage: "\n -l Lazy umount (detach filesystem)" 23 //usage: "\n -f Force umount (i.e., unreachable NFS server)" 24 //usage: IF_FEATURE_MOUNT_LOOP( 25 //usage: "\n -D Don't free loop device even if it has been used" 26 //usage: ) 27 //usage: 28 //usage:#define umount_example_usage 29 //usage: "$ umount /dev/hdc1\n" 30 10 31 #include <mntent.h> 11 32 #include <sys/mount.h> … … 24 45 #endif 25 46 26 /* ignored: -v -d -t -i */ 27 #define OPTION_STRING "fldnra" "vdt:i" 47 /* Ignored: -v -t -i 48 * bbox always acts as if -d is present. 49 * -D can be used to suppress it (bbox extension). 50 * Rationale: 51 * (1) util-linux's umount does it if "loop=..." is seen in /etc/mtab: 52 * thus, on many systems, bare umount _does_ drop loop devices. 53 * (2) many users request this feature. 54 */ 55 #define OPTION_STRING "fldDnra" "vt:i" 28 56 #define OPT_FORCE (1 << 0) // Same as MNT_FORCE 29 57 #define OPT_LAZY (1 << 1) // Same as MNT_DETACH 30 #define OPT_FREELOOP (1 << 2) 31 #define OPT_NO_MTAB (1 << 3) 32 #define OPT_REMOUNT (1 << 4) 33 #define OPT_ALL (ENABLE_FEATURE_UMOUNT_ALL ? (1 << 5) : 0) 58 //#define OPT_FREE_LOOP (1 << 2) // -d is assumed always present 59 #define OPT_DONT_FREE_LOOP (1 << 3) 60 #define OPT_NO_MTAB (1 << 4) 61 #define OPT_REMOUNT (1 << 5) 62 #define OPT_ALL (ENABLE_FEATURE_UMOUNT_ALL ? (1 << 6) : 0) 34 63 35 64 int umount_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; … … 145 174 // De-allocate the loop device. This ioctl should be ignored on 146 175 // any non-loop block devices. 147 if (ENABLE_FEATURE_MOUNT_LOOP && (opt & OPT_FREELOOP) && m)176 if (ENABLE_FEATURE_MOUNT_LOOP && !(opt & OPT_DONT_FREE_LOOP) && m) 148 177 del_loop(m->device); 149 178 if (ENABLE_FEATURE_MTAB_SUPPORT && !(opt & OPT_NO_MTAB) && m)
Note:
See TracChangeset
for help on using the changeset viewer.