From e444c2b8c218587764c7bcf83a4d88ff21eaf49f Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Tue, 1 Oct 2019 13:26:27 -0700 Subject: [PATCH] scoutfs: remove sort_priv The only user was item compaction in the btree and it has been removed. Signed-off-by: Zach Brown --- kmod/src/Makefile | 1 - kmod/src/sort_priv.c | 71 -------------------------------------------- kmod/src/sort_priv.h | 8 ----- 3 files changed, 80 deletions(-) delete mode 100644 kmod/src/sort_priv.c delete mode 100644 kmod/src/sort_priv.h diff --git a/kmod/src/Makefile b/kmod/src/Makefile index 8048bfd9..9b776a71 100644 --- a/kmod/src/Makefile +++ b/kmod/src/Makefile @@ -34,7 +34,6 @@ scoutfs-y += \ scoutfs_trace.o \ seg.o \ server.o \ - sort_priv.o \ spbm.o \ super.o \ sysfs.o \ diff --git a/kmod/src/sort_priv.c b/kmod/src/sort_priv.c deleted file mode 100644 index 2acc0802..00000000 --- a/kmod/src/sort_priv.c +++ /dev/null @@ -1,71 +0,0 @@ -/* - * A copy of sort() from upstream with a priv argument that's passed - * to comparison, like list_sort(). - */ - -/* ------------------------ */ - -/* - * A fast, small, non-recursive O(nlog n) sort for the Linux kernel - * - * Jan 23 2005 Matt Mackall - */ - -#include -#include -#include -#include -#include "sort_priv.h" - -/** - * sort - sort an array of elements - * @priv: caller's pointer to pass to comparison and swap functions - * @base: pointer to data to sort - * @num: number of elements - * @size: size of each element - * @cmp_func: pointer to comparison function - * @swap_func: pointer to swap function or NULL - * - * This function does a heapsort on the given array. You may provide a - * swap_func function optimized to your element type. - * - * Sorting time is O(n log n) both on average and worst-case. While - * qsort is about 20% faster on average, it suffers from exploitable - * O(n*n) worst-case behavior and extra memory requirements that make - * it less suitable for kernel use. - */ - -void sort_priv(void *priv, void *base, size_t num, size_t size, - int (*cmp_func)(void *priv, const void *, const void *), - void (*swap_func)(void *priv, void *, void *, int size)) -{ - /* pre-scale counters for performance */ - int i = (num/2 - 1) * size, n = num * size, c, r; - - /* heapify */ - for ( ; i >= 0; i -= size) { - for (r = i; r * 2 + size < n; r = c) { - c = r * 2 + size; - if (c < n - size && - cmp_func(priv, base + c, base + c + size) < 0) - c += size; - if (cmp_func(priv, base + r, base + c) >= 0) - break; - swap_func(priv, base + r, base + c, size); - } - } - - /* sort */ - for (i = n - size; i > 0; i -= size) { - swap_func(priv, base, base + i, size); - for (r = 0; r * 2 + size < i; r = c) { - c = r * 2 + size; - if (c < i - size && - cmp_func(priv, base + c, base + c + size) < 0) - c += size; - if (cmp_func(priv, base + r, base + c) >= 0) - break; - swap_func(priv, base + r, base + c, size); - } - } -} diff --git a/kmod/src/sort_priv.h b/kmod/src/sort_priv.h deleted file mode 100644 index c5fde547..00000000 --- a/kmod/src/sort_priv.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _SCOUTFS_SORT_PRIV_H_ -#define _SCOUTFS_SORT_PRIV_H_ - -void sort_priv(void *priv, void *base, size_t num, size_t size, - int (*cmp_func)(void *priv, const void *, const void *), - void (*swap_func)(void *priv, void *, void *, int size)); - -#endif