summaryrefslogtreecommitdiff
path: root/packages/busybox/slingbox-1.00/lazy_umount.patch
diff options
context:
space:
mode:
authorRod Whitby <rod@whitby.id.au>2006-01-04 11:57:49 +0000
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>2006-01-04 11:57:49 +0000
commit6c28c501d6db85c88873f4a722909a3e95e3f2e8 (patch)
treed8515be95cb80f913ddd09de58fdf55f94b8ff22 /packages/busybox/slingbox-1.00/lazy_umount.patch
parent7a8916660caf8af3724f830d6ac6b85a68b10f43 (diff)
slingbox: Update slingbox umount to support -f and add the Linksys custom -L (-lazy umount) option.
Diffstat (limited to 'packages/busybox/slingbox-1.00/lazy_umount.patch')
-rw-r--r--packages/busybox/slingbox-1.00/lazy_umount.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/packages/busybox/slingbox-1.00/lazy_umount.patch b/packages/busybox/slingbox-1.00/lazy_umount.patch
new file mode 100644
index 0000000000..0608017e70
--- /dev/null
+++ b/packages/busybox/slingbox-1.00/lazy_umount.patch
@@ -0,0 +1,42 @@
+--- busybox-1.00-orig/util-linux/umount.c 2005-12-16 23:13:33.000000000 -0600
++++ busybox-1.00/util-linux/umount.c 2005-12-16 23:16:49.000000000 -0600
+@@ -35,6 +35,7 @@
+ #endif
+
+ static const int MNT_FORCE = 1;
++static const int MNT_DETACH = 2; /* Linksys -L mod */
+ static const int MS_MGC_VAL = 0xc0ed0000; /* Magic number indicatng "new" flags */
+ static const int MS_REMOUNT = 32; /* Alter flags of a mounted FS. */
+ static const int MS_RDONLY = 1; /* Mount read-only. */
+@@ -54,7 +55,7 @@
+ static struct _mtab_entry_t *mtab_cache = NULL;
+
+
+-
++static int doLazy = FALSE; /* Linksys -L mod */
+ #if defined CONFIG_FEATURE_MOUNT_FORCE
+ static int doForce = FALSE;
+ #endif
+@@ -181,6 +182,12 @@
+ /* this was a loop device, delete it */
+ del_loop(blockDevice);
+ #endif
++ if (status != 0 && doLazy) { /* Linksys -L mod */
++ status = umount2(blockDevice, MNT_DETACH);
++ if (status != 0) {
++ bb_error_msg_and_die("lazy umount of %s failed!", blockDevice);
++ }
++ }
+ #if defined CONFIG_FEATURE_MOUNT_FORCE
+ if (status != 0 && doForce) {
+ status = umount2(blockDevice, MNT_FORCE);
+@@ -259,6 +266,9 @@
+ freeLoop = FALSE;
+ break;
+ #endif
++ case 'L': /* Linksys -L mod */
++ doLazy = TRUE;
++ break;
+ #ifdef CONFIG_FEATURE_MTAB_SUPPORT
+ case 'n':
+ useMtab = FALSE;