From 0fd57a14684e59d9491b0d5f93140f5cc75f72f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=BD=D0=B0=D0=B1?= Date: Mon, 24 Jan 2022 20:11:07 +0100 Subject: [PATCH] Linux 5.17 compat: PDE_DATA() renamed to pde_data() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Upstream commit 359745d78351c6f5442435f81549f0207ece28aa ("proc: remove PDE_DATA() completely") Link: https://lore.kernel.org/all/20211124081956.87711-2-songmuchun@bytedance.com/T/#u Closes: #13004 Signed-off-by: Ahelenia ZiemiaƄska --- config/kernel-proc-operations.m4 | 37 +++++++++++++++++++++++++-- module/os/linux/spl/spl-kstat.c | 2 +- module/os/linux/spl/spl-procfs-list.c | 2 +- 3 files changed, 37 insertions(+), 4 deletions(-) diff --git a/config/kernel-proc-operations.m4 b/config/kernel-proc-operations.m4 index df216222ecc2..47c8f0f88c93 100644 --- a/config/kernel-proc-operations.m4 +++ b/config/kernel-proc-operations.m4 @@ -3,7 +3,7 @@ dnl # 5.6 API Change dnl # The proc_ops structure was introduced to replace the use of dnl # of the file_operations structure when registering proc handlers. dnl # -AC_DEFUN([ZFS_AC_KERNEL_SRC_PROC_OPERATIONS], [ +AC_DEFUN([ZFS_AC_KERNEL_SRC_PROC_OPERATIONS_PROC_OPS], [ ZFS_LINUX_TEST_SRC([proc_ops_struct], [ #include @@ -30,7 +30,24 @@ AC_DEFUN([ZFS_AC_KERNEL_SRC_PROC_OPERATIONS], [ ]) ]) -AC_DEFUN([ZFS_AC_KERNEL_PROC_OPERATIONS], [ +dnl # +dnl # 5.17 API: PDE_DATA() renamed to pde_data(), +dnl # 359745d78351c6f5442435f81549f0207ece28aa ("proc: remove PDE_DATA() completely") +dnl # +AC_DEFUN([ZFS_AC_KERNEL_SRC_PROC_OPERATIONS_PDE_DATA], [ + ZFS_LINUX_TEST_SRC([proc_fs_pde_data], [ + #include + ], [ + pde_data(NULL); + ]) +]) + +AC_DEFUN([ZFS_AC_KERNEL_SRC_PROC_OPERATIONS], [ + ZFS_AC_KERNEL_SRC_PROC_OPERATIONS_PROC_OPS + ZFS_AC_KERNEL_SRC_PROC_OPERATIONS_PDE_DATA +]) + +AC_DEFUN([ZFS_AC_KERNEL_PROC_OPERATIONS_PROC_OPS], [ AC_MSG_CHECKING([whether proc_ops structure exists]) ZFS_LINUX_TEST_RESULT([proc_ops_struct], [ AC_MSG_RESULT(yes) @@ -39,3 +56,19 @@ AC_DEFUN([ZFS_AC_KERNEL_PROC_OPERATIONS], [ AC_MSG_RESULT(no) ]) ]) + +AC_DEFUN([ZFS_AC_KERNEL_PROC_OPERATIONS_PDE_DATA], [ + AC_MSG_CHECKING([whether pde_data() is lowercase]) + ZFS_LINUX_TEST_RESULT([proc_fs_pde_data], [ + AC_MSG_RESULT(yes) + AC_DEFINE(ZFS_PDE_DATA, pde_data, [pde_data() is pde_data()]) + ], [ + AC_MSG_RESULT(no) + AC_DEFINE(ZFS_PDE_DATA, PDE_DATA, [pde_data() is PDE_DATA()]) + ]) +]) + +AC_DEFUN([ZFS_AC_KERNEL_PROC_OPERATIONS], [ + ZFS_AC_KERNEL_PROC_OPERATIONS_PROC_OPS + ZFS_AC_KERNEL_PROC_OPERATIONS_PDE_DATA +]) diff --git a/module/os/linux/spl/spl-kstat.c b/module/os/linux/spl/spl-kstat.c index a417d4d7c358..ef03f83feaa2 100644 --- a/module/os/linux/spl/spl-kstat.c +++ b/module/os/linux/spl/spl-kstat.c @@ -418,7 +418,7 @@ proc_kstat_open(struct inode *inode, struct file *filp) return (rc); f = filp->private_data; - f->private = PDE_DATA(inode); + f->private = ZFS_PDE_DATA(inode); return (0); } diff --git a/module/os/linux/spl/spl-procfs-list.c b/module/os/linux/spl/spl-procfs-list.c index 1922825c94a8..eba784a31565 100644 --- a/module/os/linux/spl/spl-procfs-list.c +++ b/module/os/linux/spl/spl-procfs-list.c @@ -175,7 +175,7 @@ procfs_list_open(struct inode *inode, struct file *filp) struct seq_file *f = filp->private_data; procfs_list_cursor_t *cursor = f->private; - cursor->procfs_list = PDE_DATA(inode); + cursor->procfs_list = ZFS_PDE_DATA(inode); cursor->cached_node = NULL; cursor->cached_pos = 0;