From 430cb85a969db114f87f573e29bed9defb89961b Mon Sep 17 00:00:00 2001
From: Rob Norris <robn@despairlabs.com>
Date: Sat, 24 Aug 2024 20:59:56 +1000
Subject: [PATCH] config: remove HAVE_SET_SPECIAL_STATE

Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Reviewed-by: Tino Reichardt <milky-zfs@mcmilk.de>
Signed-off-by: Rob Norris <robn@despairlabs.com>
Closes #16479
---
 config/kernel-special-state.m4    | 21 ---------------------
 config/kernel.m4                  |  2 --
 include/os/linux/spl/sys/thread.h |  7 -------
 module/os/linux/spl/spl-thread.c  |  2 +-
 4 files changed, 1 insertion(+), 31 deletions(-)
 delete mode 100644 config/kernel-special-state.m4

diff --git a/config/kernel-special-state.m4 b/config/kernel-special-state.m4
deleted file mode 100644
index aa60aabeb..000000000
--- a/config/kernel-special-state.m4
+++ /dev/null
@@ -1,21 +0,0 @@
-dnl #
-dnl # 4.17 API change
-dnl # Added set_special_state() function
-dnl #
-AC_DEFUN([ZFS_AC_KERNEL_SRC_SET_SPECIAL_STATE], [
-	ZFS_LINUX_TEST_SRC([set_special_state], [
-		#include <linux/sched.h>
-	],[
-		set_special_state(TASK_STOPPED);
-	])
-])
-
-AC_DEFUN([ZFS_AC_KERNEL_SET_SPECIAL_STATE], [
-	AC_MSG_CHECKING([whether set_special_state() exists])
-	ZFS_LINUX_TEST_RESULT([set_special_state], [
-		AC_MSG_RESULT(yes)
-		AC_DEFINE(HAVE_SET_SPECIAL_STATE, 1, [set_special_state() exists])
-	],[
-		AC_MSG_RESULT(no)
-	])
-])
diff --git a/config/kernel.m4 b/config/kernel.m4
index 2d8c99751..f39dc3954 100644
--- a/config/kernel.m4
+++ b/config/kernel.m4
@@ -113,7 +113,6 @@ AC_DEFUN([ZFS_AC_KERNEL_TEST_SRC], [
 	ZFS_AC_KERNEL_SRC_SIGNAL_STOP
 	ZFS_AC_KERNEL_SRC_SIGINFO
 	ZFS_AC_KERNEL_SRC_SYSFS
-	ZFS_AC_KERNEL_SRC_SET_SPECIAL_STATE
 	ZFS_AC_KERNEL_SRC_STANDALONE_LINUX_STDARG
 	ZFS_AC_KERNEL_SRC_STRLCPY
 	ZFS_AC_KERNEL_SRC_PAGEMAP_FOLIO_WAIT_BIT
@@ -228,7 +227,6 @@ AC_DEFUN([ZFS_AC_KERNEL_TEST_RESULT], [
 	ZFS_AC_KERNEL_SIGNAL_STOP
 	ZFS_AC_KERNEL_SIGINFO
 	ZFS_AC_KERNEL_SYSFS
-	ZFS_AC_KERNEL_SET_SPECIAL_STATE
 	ZFS_AC_KERNEL_STANDALONE_LINUX_STDARG
 	ZFS_AC_KERNEL_STRLCPY
 	ZFS_AC_KERNEL_PAGEMAP_FOLIO_WAIT_BIT
diff --git a/include/os/linux/spl/sys/thread.h b/include/os/linux/spl/sys/thread.h
index bc88ff4ef..4f7f659e5 100644
--- a/include/os/linux/spl/sys/thread.h
+++ b/include/os/linux/spl/sys/thread.h
@@ -80,11 +80,4 @@ typedef kernel_siginfo_t spl_kernel_siginfo_t;
 typedef siginfo_t spl_kernel_siginfo_t;
 #endif
 
-#ifdef HAVE_SET_SPECIAL_STATE
-#define	spl_set_special_state(x) set_special_state((x))
-#else
-#define	spl_set_special_state(x) __set_current_state((x))
-#endif
-
-
 #endif  /* _SPL_THREAD_H */
diff --git a/module/os/linux/spl/spl-thread.c b/module/os/linux/spl/spl-thread.c
index 2af766ac2..6f261b4d8 100644
--- a/module/os/linux/spl/spl-thread.c
+++ b/module/os/linux/spl/spl-thread.c
@@ -180,7 +180,7 @@ issig(void)
 		kernel_signal_stop();
 #else
 		if (current->jobctl & JOBCTL_STOP_DEQUEUED)
-			spl_set_special_state(TASK_STOPPED);
+			set_special_state(TASK_STOPPED);
 
 		spin_unlock_irq(&current->sighand->siglock);