diff options
author | Patrick J Volkerding <volkerdi@slackware.com> | 2018-08-22 23:44:25 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2018-08-23 09:00:32 +0200 |
commit | e27639b95ae9a52e4dc9b04a34df56105e210902 (patch) | |
tree | 09d5d8456a2f3766a4c9d6d7a5e87e57dc5e9ec0 /source/a/findutils/patches/findutils-4.6.0-leaf-opt.patch | |
parent | cfe7baffeee46ddf054cd19a6570bdab8b0cf7bd (diff) | |
download | current-e27639b95ae9a52e4dc9b04a34df56105e210902.tar.gz current-e27639b95ae9a52e4dc9b04a34df56105e210902.tar.xz |
Wed Aug 22 23:44:25 UTC 201820180822234425
a/findutils-4.6.0-x86_64-1.txz: Upgraded.
a/kernel-firmware-20180821_1d17c18-noarch-1.txz: Upgraded.
a/kernel-generic-4.14.66-x86_64-1.txz: Upgraded.
a/kernel-huge-4.14.66-x86_64-1.txz: Upgraded.
a/kernel-modules-4.14.66-x86_64-1.txz: Upgraded.
ap/man-db-2.8.4-x86_64-2.txz: Rebuilt.
Rebuilt to get it on the slackpkg upgrade list since the previous texlive
package clobbered /usr/bin/man and we need to fix that.
d/kernel-headers-4.14.66-x86-1.txz: Upgraded.
k/kernel-source-4.14.66-noarch-1.txz: Upgraded.
l/glib2-2.56.2-x86_64-1.txz: Upgraded.
t/texlive-2018.180822-x86_64-1.txz: Upgraded.
Added some patches that I'd dropped - sorry, my bad.
Don't clobber /usr/bin/man.
Thanks to Johannes Schoepfer.
isolinux/initrd.img: Rebuilt.
kernels/*: Upgraded.
usb-and-pxe-installers/usbboot.img: Rebuilt.
Diffstat (limited to 'source/a/findutils/patches/findutils-4.6.0-leaf-opt.patch')
-rw-r--r-- | source/a/findutils/patches/findutils-4.6.0-leaf-opt.patch | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/source/a/findutils/patches/findutils-4.6.0-leaf-opt.patch b/source/a/findutils/patches/findutils-4.6.0-leaf-opt.patch new file mode 100644 index 000000000..7fb3035b8 --- /dev/null +++ b/source/a/findutils/patches/findutils-4.6.0-leaf-opt.patch @@ -0,0 +1,83 @@ +From 1328926a705fdb4728c1f255dd368de928736d39 Mon Sep 17 00:00:00 2001 +From: Kamil Dudka <kdudka@redhat.com> +Date: Fri, 25 Sep 2015 16:09:39 +0200 +Subject: [PATCH 1/2] fts: introduce the FTS_NOLEAF flag + +The flag is needed to implement the -noleaf option of find. +* lib/fts.c (link_count_optimize_ok): Implement the FTS_NOLEAF flag. +* lib/fts_.h (FTS_NOLEAF): New macro, shifted conflicting constants. +--- + gl/lib/fts.c | 4 ++++ + gl/lib/fts_.h | 12 +++++++++--- + 2 files changed, 13 insertions(+), 3 deletions(-) + +diff --git a/gl/lib/fts.c b/gl/lib/fts.c +index d2d404f..808466f 100644 +--- a/gl/lib/fts.c ++++ b/gl/lib/fts.c +@@ -736,6 +736,10 @@ filesystem_type (FTSENT const *p) + struct dev_type *ent; + struct statfs fs_buf; + ++ if (ISSET(FTS_NOLEAF)) ++ /* leaf optimization explicitly disabled by the FTS_NOLEAF flag */ ++ return 0; ++ + /* If we're not in CWDFD mode, don't bother with this optimization, + since the caller is not serious about performance. */ + if (!ISSET (FTS_CWDFD)) +diff --git a/gl/lib/fts_.h b/gl/lib/fts_.h +index 63d4b74..f1d519b 100644 +--- a/gl/lib/fts_.h ++++ b/gl/lib/fts_.h +@@ -155,10 +155,16 @@ typedef struct { + from input path names during fts_open initialization. */ + # define FTS_VERBATIM 0x1000 + +-# define FTS_OPTIONMASK 0x1fff /* valid user option mask */ ++ /* Disable leaf optimization (which eliminates stat() calls during traversal, ++ based on the count of nested directories stored in stat.st_nlink of each ++ directory). Note that the optimization is by default enabled only for ++ selected file systems, and only if the FTS_CWDFD flag is set. */ ++# define FTS_NOLEAF 0x2000 + +-# define FTS_NAMEONLY 0x2000 /* (private) child names only */ +-# define FTS_STOP 0x4000 /* (private) unrecoverable error */ ++# define FTS_OPTIONMASK 0x3fff /* valid user option mask */ ++ ++# define FTS_NAMEONLY 0x4000 /* (private) child names only */ ++# define FTS_STOP 0x8000 /* (private) unrecoverable error */ + int fts_options; /* fts_open options, global flags */ + + /* Map a directory's device number to a boolean. The boolean is +-- +2.5.0 + + +From c186934e6e37ddadf7511abb9b1045192757618e Mon Sep 17 00:00:00 2001 +From: Kamil Dudka <kdudka@redhat.com> +Date: Fri, 25 Sep 2015 19:13:15 +0200 +Subject: [PATCH 2/2] ftsfind: propagate the -noleaf option to FTS + +* find/ftsfind.c (find): Propagate the -noleaf option to FTS. +--- + find/ftsfind.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/find/ftsfind.c b/find/ftsfind.c +index 5159470..e34b672 100644 +--- a/find/ftsfind.c ++++ b/find/ftsfind.c +@@ -559,6 +559,9 @@ find (char *arg) + if (options.stay_on_filesystem) + ftsoptions |= FTS_XDEV; + ++ if (options.no_leaf_check) ++ ftsoptions |= FTS_NOLEAF; ++ + p = fts_open (arglist, ftsoptions, NULL); + if (NULL == p) + { +-- +2.5.0 + |