diff options
author | Rod Whitby <rod@whitby.id.au> | 2006-01-04 11:57:49 +0000 |
---|---|---|
committer | OpenEmbedded Project <openembedded-devel@lists.openembedded.org> | 2006-01-04 11:57:49 +0000 |
commit | 6c28c501d6db85c88873f4a722909a3e95e3f2e8 (patch) | |
tree | d8515be95cb80f913ddd09de58fdf55f94b8ff22 /packages/busybox/slingbox-1.00/lazy_umount.patch | |
parent | 7a8916660caf8af3724f830d6ac6b85a68b10f43 (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.patch | 42 |
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; |