File 0049-LU-16118-build-Use-pde_data-when-available.patch of Package lustre_2_12

From d54e8e95de88e13f193bd44eb43662e75b2091c1 Mon Sep 17 00:00:00 2001
From: Shaun Tancheff <shaun.tancheff@hpe.com>
Date: Sat, 12 Nov 2022 03:29:42 -0600
Subject: [PATCH] LU-16118 build: Use pde_data() when available

Linux commit v5.16-11573-g6dfbbae14a7b
   introduce pde_data() and
Linux commit v5.16-11574-g359745d78351
   remove PDE_DATA()

Use PDE_DATA() when pde_data is not available.

Test-Parameters: trivial
HPE-bug-id: LUS-11193
Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Change-Id: Ida570462acd466a251adc81a14bc1fbf35d96b00
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/48363
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Jian Yu <yujian@whamcloud.com>
---
 libcfs/autoconf/lustre-libcfs.m4        |   26 ++++++++++++++++++++++++++
 lnet/klnds/gnilnd/gnilnd_proc.c         |   12 ++++++------
 lustre/include/lprocfs_status.h         |    4 ++--
 lustre/lmv/lproc_lmv.c                  |    2 +-
 lustre/lod/lod_pool.c                   |    2 +-
 lustre/lod/lproc_lod.c                  |    2 +-
 lustre/lov/lov_pool.c                   |    2 +-
 lustre/lov/lproc_lov.c                  |    2 +-
 lustre/mdt/mdt_lproc.c                  |    2 +-
 lustre/obdclass/lprocfs_jobstats.c      |    2 +-
 lustre/obdclass/lprocfs_status.c        |    2 +-
 lustre/obdclass/lprocfs_status_server.c |    4 ++--
 lustre/ptlrpc/nodemap_lproc.c           |    6 +++---
 lustre/quota/lproc_quota.c              |    2 +-
 14 files changed, 48 insertions(+), 22 deletions(-)

--- a/libcfs/autoconf/lustre-libcfs.m4
+++ b/libcfs/autoconf/lustre-libcfs.m4
@@ -1531,6 +1531,8 @@ LIBCFS_VMALLOC_2ARGS
 LIBCFS_HAVE_PANIC_NOTIFIER_HEADER
 # 5.15
 LIBCFS_PARAM_SET_UINT_MINMAX
+# 5.17
+LIBCFS_PDE_DATA_EXISTS
 ]) # LIBCFS_PROG_LINUX
 
 #
@@ -1606,6 +1608,30 @@ AM_CONDITIONAL(NEED_PCLMULQDQ_CRC32C, [t
 ]) # LIBCFS_CONDITIONALS
 
 #
+# LIBCFS_PDE_DATA_EXISTS
+#
+# Linux commit v5.16-11573-g6dfbbae14a7b
+#    introduce pde_data()
+# Linux commit v5.16-11574-g359745d78351
+#    remove PDE_DATA()
+#
+AC_DEFUN([LIBCFS_PDE_DATA_EXISTS],[
+LB_CHECK_COMPILE([does function 'pde_data' exist],
+pde_data, [
+		#include <linux/proc_fs.h>
+	],[
+		struct inode *inode = NULL;
+		void *data =pde_data(inode);
+		(void)data;
+	],[
+		AC_DEFINE(HAVE_pde_data, 1, [function pde_data() available])
+	],[
+		AC_DEFINE(pde_data(inode), PDE_DATA(inode),
+			  [function pde_data() unavailable])
+	])
+]) # LIBCFS_PDE_DATA_EXISTS
+
+#
 # LIBCFS_CONFIG_FILES
 #
 # files that should be generated with AC_OUTPUT
--- a/lnet/klnds/gnilnd/gnilnd_proc.c
+++ b/lnet/klnds/gnilnd/gnilnd_proc.c
@@ -191,7 +191,7 @@ kgnilnd_proc_cksum_test_write(struct fil
 static int
 kgnilnd_cksum_test_seq_open(struct inode *inode, struct file *file)
 {
-	return single_open(file, NULL, PDE_DATA(inode));
+	return single_open(file, NULL, pde_data(inode));
 }
 
 static const struct file_operations kgn_cksum_test_fops = {
@@ -339,7 +339,7 @@ kgnilnd_proc_stats_write(struct file *fi
 static int
 kgnilnd_stats_seq_open(struct inode *inode, struct file *file)
 {
-	return single_open(file, kgnilnd_stats_seq_show, PDE_DATA(inode));
+	return single_open(file, kgnilnd_stats_seq_show, pde_data(inode));
 }
 
 static const struct file_operations kgn_stats_fops = {
@@ -731,7 +731,7 @@ kgnilnd_smsg_seq_open(struct inode *inod
 	rc = seq_open(file, &kgn_smsg_sops);
 	if (rc == 0) {
 		sf = file->private_data;
-		sf->private = PDE_DATA(inode);
+		sf->private = pde_data(inode);
 	}
 
 	return rc;
@@ -1063,7 +1063,7 @@ static int
 kgnilnd_peer_conns_seq_open(struct inode *inode, struct file *file)
 {
 	return single_open(file, kgnilnd_proc_peer_conns_seq_show,
-			   PDE_DATA(inode));
+			   pde_data(inode));
 }
 
 static const struct file_operations kgn_peer_conns_fops = {
@@ -1084,7 +1084,7 @@ kgnilnd_conn_seq_open(struct inode *inod
 	rc = seq_open(file, &kgn_conn_sops);
 	if (rc == 0) {
 		sf = file->private_data;
-		sf->private = PDE_DATA(inode);
+		sf->private = pde_data(inode);
 	}
 
 	return rc;
@@ -1306,7 +1306,7 @@ kgnilnd_peer_seq_open(struct inode *inod
 	rc = seq_open(file, &kgn_peer_sops);
 	if (rc == 0) {
 		sf = file->private_data;
-		sf->private = PDE_DATA(inode);
+		sf->private = pde_data(inode);
 	}
 
 	return rc;
--- a/lustre/include/lprocfs_status.h
+++ b/lustre/include/lprocfs_status.h
@@ -761,7 +761,7 @@ static int name##_single_open(struct ino
 									\
 	return single_open(file, name##_seq_show,			\
 			   inode->i_private ? inode->i_private :	\
-					      PDE_DATA(inode));		\
+					      pde_data(inode));		\
 }									\
 static const struct proc_ops name##_fops = {				\
 	PROC_OWNER(THIS_MODULE)						\
@@ -808,7 +808,7 @@ static const struct proc_ops name##_fops
 	{								\
 		return single_open(file, NULL,				\
 				   inode->i_private ? inode->i_private : \
-				   PDE_DATA(inode));			\
+				   pde_data(inode));			\
 	}								\
 	static const struct proc_ops name##_##type##_fops = {		\
 		.proc_open	= name##_##type##_open,			\
--- a/lustre/lmv/lproc_lmv.c
+++ b/lustre/lmv/lproc_lmv.c
@@ -139,7 +139,7 @@ static int lmv_target_seq_open(struct in
                 return rc;
 
 	seq = file->private_data;
-	seq->private = PDE_DATA(inode);
+	seq->private = pde_data(inode);
 	return 0;
 }
 
--- a/lustre/lod/lod_pool.c
+++ b/lustre/lod/lod_pool.c
@@ -403,7 +403,7 @@ static int pool_proc_open(struct inode *
 	rc = seq_open(file, &pool_proc_ops);
 	if (!rc) {
 		struct seq_file *seq = file->private_data;
-		seq->private = PDE_DATA(inode);
+		seq->private = pde_data(inode);
 	}
 	return rc;
 }
--- a/lustre/lod/lproc_lod.c
+++ b/lustre/lod/lproc_lod.c
@@ -710,7 +710,7 @@ static int lod_osts_seq_open(struct inod
 		return rc;
 
 	seq = file->private_data;
-	seq->private = PDE_DATA(inode);
+	seq->private = pde_data(inode);
 	return 0;
 }
 
--- a/lustre/lov/lov_pool.c
+++ b/lustre/lov/lov_pool.c
@@ -278,7 +278,7 @@ static int pool_proc_open(struct inode *
         rc = seq_open(file, &pool_proc_ops);
         if (!rc) {
                 struct seq_file *s = file->private_data;
-		s->private = PDE_DATA(inode);
+		s->private = pde_data(inode);
         }
         return rc;
 }
--- a/lustre/lov/lproc_lov.c
+++ b/lustre/lov/lproc_lov.c
@@ -259,7 +259,7 @@ static int lov_target_seq_open(struct in
 		return rc;
 
 	seq = file->private_data;
-	seq->private = PDE_DATA(inode);
+	seq->private = pde_data(inode);
 	return 0;
 }
 
--- a/lustre/mdt/mdt_lproc.c
+++ b/lustre/mdt/mdt_lproc.c
@@ -1179,7 +1179,7 @@ int lprocfs_mdt_open_files_seq_open(stru
 		return rc;
 
 	seq = file->private_data;
-	seq->private = PDE_DATA(inode);
+	seq->private = pde_data(inode);
 
 	return 0;
 }
--- a/lustre/obdclass/lprocfs_jobstats.c
+++ b/lustre/obdclass/lprocfs_jobstats.c
@@ -494,7 +494,7 @@ static int lprocfs_jobstats_seq_open(str
 	if (rc)
 		return rc;
 	seq = file->private_data;
-	seq->private = PDE_DATA(inode);
+	seq->private = pde_data(inode);
 	return 0;
 }
 
--- a/lustre/obdclass/lprocfs_status.c
+++ b/lustre/obdclass/lprocfs_status.c
@@ -1573,7 +1573,7 @@ static int lprocfs_stats_seq_open(struct
 	if (rc)
 		return rc;
 	seq = file->private_data;
-	seq->private = inode->i_private ? inode->i_private : PDE_DATA(inode);
+	seq->private = inode->i_private ? inode->i_private : pde_data(inode);
 	return 0;
 }
 
--- a/lustre/obdclass/lprocfs_status_server.c
+++ b/lustre/obdclass/lprocfs_status_server.c
@@ -89,7 +89,7 @@ EXPORT_SYMBOL(ldebugfs_add_symlink);
 
 int lprocfs_evict_client_open(struct inode *inode, struct file *f)
 {
-	struct obd_device *obd = PDE_DATA(file_inode(f));
+	struct obd_device *obd = pde_data(file_inode(f));
 
 	atomic_inc(&obd->obd_evict_inprogress);
 	return 0;
@@ -97,7 +97,7 @@ int lprocfs_evict_client_open(struct ino
 
 int lprocfs_evict_client_release(struct inode *inode, struct file *f)
 {
-	struct obd_device *obd = PDE_DATA(file_inode(f));
+	struct obd_device *obd = pde_data(file_inode(f));
 
 	atomic_dec(&obd->obd_evict_inprogress);
 	wake_up(&obd->obd_evict_inprogress_waitq);
--- a/lustre/ptlrpc/nodemap_lproc.c
+++ b/lustre/ptlrpc/nodemap_lproc.c
@@ -104,7 +104,7 @@ static int nodemap_idmap_show(struct seq
  */
 static int nodemap_idmap_open(struct inode *inode, struct file *file)
 {
-	return single_open(file, nodemap_idmap_show, PDE_DATA(inode));
+	return single_open(file, nodemap_idmap_show, pde_data(inode));
 }
 
 /**
@@ -164,7 +164,7 @@ static int nodemap_ranges_show(struct se
  */
 static int nodemap_ranges_open(struct inode *inode, struct file *file)
 {
-	return single_open(file, nodemap_ranges_show, PDE_DATA(inode));
+	return single_open(file, nodemap_ranges_show, pde_data(inode));
 }
 
 /**
@@ -362,7 +362,7 @@ static int nodemap_exports_show(struct s
  */
 static int nodemap_exports_open(struct inode *inode, struct file *file)
 {
-	return single_open(file, nodemap_exports_show, PDE_DATA(inode));
+	return single_open(file, nodemap_exports_show, pde_data(inode));
 }
 
 /**
--- a/lustre/quota/lproc_quota.c
+++ b/lustre/quota/lproc_quota.c
@@ -285,7 +285,7 @@ static int lprocfs_quota_seq_open(struct
 		return -ENOMEM;
 
 	/* store pointer to object we would like to iterate over */
-	lqp->lqp_obj = (struct dt_object *)PDE_DATA(inode);
+	lqp->lqp_obj = (struct dt_object *)pde_data(inode);
 
 	/* Initialize the common environment to be used in the seq operations */
 	rc = lu_env_init(&lqp->lqp_env, LCT_LOCAL);
openSUSE Build Service is sponsored by