diff options
author | Suren A. Chilingaryan <csa@suren.me> | 2019-09-01 00:00:32 +0200 |
---|---|---|
committer | Suren A. Chilingaryan <csa@suren.me> | 2019-09-01 00:00:32 +0200 |
commit | ca9627e70852f6b2e835660df870fe3ab405882d (patch) | |
tree | 0a008b1d5b16fa0679a195ed7b5662c7891f591c /sys-apps/util-linux/files/util-linux-2.12i-swapon-check-symlinks.patch | |
download | darklin4-ca9627e70852f6b2e835660df870fe3ab405882d.tar.gz darklin4-ca9627e70852f6b2e835660df870fe3ab405882d.tar.bz2 darklin4-ca9627e70852f6b2e835660df870fe3ab405882d.tar.xz darklin4-ca9627e70852f6b2e835660df870fe3ab405882d.zip |
Initial import
Diffstat (limited to 'sys-apps/util-linux/files/util-linux-2.12i-swapon-check-symlinks.patch')
-rw-r--r-- | sys-apps/util-linux/files/util-linux-2.12i-swapon-check-symlinks.patch | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/sys-apps/util-linux/files/util-linux-2.12i-swapon-check-symlinks.patch b/sys-apps/util-linux/files/util-linux-2.12i-swapon-check-symlinks.patch new file mode 100644 index 0000000..b9ed346 --- /dev/null +++ b/sys-apps/util-linux/files/util-linux-2.12i-swapon-check-symlinks.patch @@ -0,0 +1,33 @@ +--- util-linux-2.12b/mount/swapon.c.orig 2004-10-28 10:02:44.320023600 -0400 ++++ util-linux-2.12b/mount/swapon.c 2004-10-28 10:02:14.384574000 -0400 +@@ -22,2 +22,3 @@ + #include <stdlib.h> ++#include <sys/param.h> + #include <stdio.h> +@@ -143,10 +144,26 @@ + static int + is_in_proc_swaps(char *fname) { + int i; ++ struct stat fstatbuf; + + for (i = 0; i < numSwaps; i++) + if (!strcmp(fname, swapFiles[i])) + return 1; ++ ++ /* fallback: ++ * if the device in /etc/fstab is a symlink, the entry ++ * in /proc/swaps won't match because the kernel stores ++ * absolute pathnames. Here we compare dev_t's. ++ */ ++ if (!lstat(fname, &fstatbuf)) ++ if (S_ISLNK(fstatbuf.st_mode)) { ++ struct stat swapstatbuf; ++ for (i = 0; i < numSwaps; i++) ++ if (!stat(swapFiles[i], &swapstatbuf) && \ ++ swapstatbuf.st_dev == fstatbuf.st_dev) ++ return 1; ++ } ++ + return 0; + } + |