diff options
Diffstat (limited to 'sys-apps/util-linux/files/util-linux-2.12p-swapon-check-symlinks.patch')
-rw-r--r-- | sys-apps/util-linux/files/util-linux-2.12p-swapon-check-symlinks.patch | 34 |
1 files changed, 0 insertions, 34 deletions
diff --git a/sys-apps/util-linux/files/util-linux-2.12p-swapon-check-symlinks.patch b/sys-apps/util-linux/files/util-linux-2.12p-swapon-check-symlinks.patch deleted file mode 100644 index f421458..0000000 --- a/sys-apps/util-linux/files/util-linux-2.12p-swapon-check-symlinks.patch +++ /dev/null @@ -1,34 +0,0 @@ ---- util-linux-2.12b/mount/swapon.c -+++ util-linux-2.12b/mount/swapon.c -@@ -7,2 +7,3 @@ - #include <stdlib.h> -+#include <sys/param.h> - #include <stdio.h> -@@ -137,10 +138,27 @@ - static int - is_in_proc_swaps(const char *fname) { - int i; -+ struct stat fstatbuf; - - for (i = 0; i < numSwaps; i++) - if (swapFiles[i] && !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; -+ stat(fname, &fstatbuf); -+ for (i = 0; i < numSwaps; i++) -+ if (swapFiles[i] && !stat(swapFiles[i], &swapstatbuf) && \ -+ swapstatbuf.st_rdev == fstatbuf.st_rdev) -+ return 1; -+ } -+ - return 0; - } - |