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);