[git commit master] swapon: skip noauto entries

Denys Vlasenko vda.linux at googlemail.com
Thu Apr 29 20:20:57 UTC 2010


commit: http://git.busybox.net/busybox/commit/?id=d2844fcb6862c080177aaf314cc98d03e65b05ac
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Lauri Kasanen <curaga at operamail.com>
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 util-linux/swaponoff.c |   17 +++++++++++++----
 1 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/util-linux/swaponoff.c b/util-linux/swaponoff.c
index f647a32..f2f52fb 100644
--- a/util-linux/swaponoff.c
+++ b/util-linux/swaponoff.c
@@ -66,11 +66,20 @@ static int do_em_all(void)
 		bb_perror_msg_and_die("/etc/fstab");
 
 	err = 0;
-	while ((m = getmntent(f)) != NULL)
-		if (strcmp(m->mnt_type, MNTTYPE_SWAP) == 0)
-			err += swap_enable_disable(m->mnt_fsname);
+	while ((m = getmntent(f)) != NULL) {
+		if (strcmp(m->mnt_type, MNTTYPE_SWAP) == 0) {
+			/* swapon -a should ignore entries with noauto,
+			 * but swapoff -a should process them */
+			if (applet_name[5] != 'n'
+			 || hasmntopt(m, MNTOPT_NOAUTO) == NULL
+			) {
+				err += swap_enable_disable(m->mnt_fsname);
+			}
+		}
+	}
 
-	endmntent(f);
+	if (ENABLE_FEATURE_CLEAN_UP)
+		endmntent(f);
 
 	return err;
 }
-- 
1.6.3.3



More information about the busybox-cvs mailing list