From cc5dd318ce4205fb882f218058537d1a6ec90e46 Mon Sep 17 00:00:00 2001 From: Shaun Tancheff Date: Tue, 31 Jan 2023 11:32:07 -0800 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. Lustre-change: https://review.whamcloud.com/48363 Lustre-commit: d54e8e95de88e13f193bd44eb43662e75b2091c1 Test-Parameters: trivial HPE-bug-id: LUS-11193 Signed-off-by: Shaun Tancheff Change-Id: Ida570462acd466a251adc81a14bc1fbf35d96b00 Reviewed-by: Andreas Dilger Reviewed-by: Jian Yu Reviewed-on: https://review.whamcloud.com/c/ex/lustre-release/+/49847 Tested-by: jenkins Tested-by: Maloo --- 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 | 4 ++-- 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, 49 insertions(+), 23 deletions(-) diff --git a/libcfs/autoconf/lustre-libcfs.m4 b/libcfs/autoconf/lustre-libcfs.m4 index 63ea1c9..420da3e 100644 --- a/libcfs/autoconf/lustre-libcfs.m4 +++ b/libcfs/autoconf/lustre-libcfs.m4 @@ -1777,6 +1777,30 @@ EXTRA_KCFLAGS="$tmp_flags" ]) # LIBCFS_LINUX_BLK_INTEGRITY_HEADER # +# 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 + ],[ + 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_PROG_LINUX # # LibCFS linux kernel checks @@ -1912,6 +1936,8 @@ LIBCFS_HAVE_PANIC_NOTIFIER_HEADER # 5.15 LIBCFS_PARAM_SET_UINT_MINMAX LIBCFS_LINUX_BLK_INTEGRITY_HEADER +# 5.17 +LIBCFS_PDE_DATA_EXISTS ]) # LIBCFS_PROG_LINUX # diff --git a/lnet/klnds/gnilnd/gnilnd_proc.c b/lnet/klnds/gnilnd/gnilnd_proc.c index fc806dc..25ea340 100644 --- a/lnet/klnds/gnilnd/gnilnd_proc.c +++ b/lnet/klnds/gnilnd/gnilnd_proc.c @@ -192,7 +192,7 @@ kgnilnd_proc_cksum_test_write(struct file *file, const char __user *ubuffer, 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 = { @@ -337,7 +337,7 @@ kgnilnd_proc_stats_write(struct file *file, const char __user *ubuffer, 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 = { @@ -729,7 +729,7 @@ kgnilnd_smsg_seq_open(struct inode *inode, struct file *file) 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; @@ -1061,7 +1061,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 = { @@ -1082,7 +1082,7 @@ kgnilnd_conn_seq_open(struct inode *inode, struct file *file) 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; @@ -1304,7 +1304,7 @@ kgnilnd_peer_seq_open(struct inode *inode, struct file *file) 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; diff --git a/lustre/include/lprocfs_status.h b/lustre/include/lprocfs_status.h index 70c4212..06d9041 100644 --- a/lustre/include/lprocfs_status.h +++ b/lustre/include/lprocfs_status.h @@ -730,7 +730,7 @@ static int name##_single_open(struct inode *inode, struct file *file) \ { \ 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) \ @@ -777,7 +777,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, \ diff --git a/lustre/lmv/lproc_lmv.c b/lustre/lmv/lproc_lmv.c index 60fb356..cc91efc 100644 --- a/lustre/lmv/lproc_lmv.c +++ b/lustre/lmv/lproc_lmv.c @@ -268,7 +268,7 @@ static int lmv_target_seq_open(struct inode *inode, struct file *file) return rc; seq = file->private_data; - seq->private = PDE_DATA(inode); + seq->private = pde_data(inode); return 0; } diff --git a/lustre/lod/lod_pool.c b/lustre/lod/lod_pool.c index c1bd009..fe16450 100644 --- a/lustre/lod/lod_pool.c +++ b/lustre/lod/lod_pool.c @@ -313,7 +313,7 @@ static int pool_proc_open(struct inode *inode, struct file *file) 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; } diff --git a/lustre/lod/lproc_lod.c b/lustre/lod/lproc_lod.c index c6003eb..e28183d 100644 --- a/lustre/lod/lproc_lod.c +++ b/lustre/lod/lproc_lod.c @@ -931,7 +931,7 @@ static int lod_mdts_seq_open(struct inode *inode, struct file *file) return rc; seq = file->private_data; - seq->private = PDE_DATA(inode); + seq->private = pde_data(inode); return 0; } @@ -945,7 +945,7 @@ static int lod_osts_seq_open(struct inode *inode, struct file *file) return rc; seq = file->private_data; - seq->private = PDE_DATA(inode); + seq->private = pde_data(inode); return 0; } diff --git a/lustre/lov/lov_pool.c b/lustre/lov/lov_pool.c index abdd5fc..73ca5af 100644 --- a/lustre/lov/lov_pool.c +++ b/lustre/lov/lov_pool.c @@ -219,7 +219,7 @@ static int pool_proc_open(struct inode *inode, struct file *file) 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; } diff --git a/lustre/lov/lproc_lov.c b/lustre/lov/lproc_lov.c index 0422f12..6a830fb 100644 --- a/lustre/lov/lproc_lov.c +++ b/lustre/lov/lproc_lov.c @@ -253,7 +253,7 @@ static int lov_target_seq_open(struct inode *inode, struct file *file) return rc; seq = file->private_data; - seq->private = PDE_DATA(inode); + seq->private = pde_data(inode); return 0; } diff --git a/lustre/mdt/mdt_lproc.c b/lustre/mdt/mdt_lproc.c index 6414ce1..7bc5c7c 100644 --- a/lustre/mdt/mdt_lproc.c +++ b/lustre/mdt/mdt_lproc.c @@ -1628,7 +1628,7 @@ int lprocfs_mdt_open_files_seq_open(struct inode *inode, struct file *file) return rc; seq = file->private_data; - seq->private = PDE_DATA(inode); + seq->private = pde_data(inode); return 0; } diff --git a/lustre/obdclass/lprocfs_jobstats.c b/lustre/obdclass/lprocfs_jobstats.c index fa93ed9..18946e4 100644 --- a/lustre/obdclass/lprocfs_jobstats.c +++ b/lustre/obdclass/lprocfs_jobstats.c @@ -504,7 +504,7 @@ static int lprocfs_jobstats_seq_open(struct inode *inode, struct file *file) if (rc) return rc; seq = file->private_data; - seq->private = PDE_DATA(inode); + seq->private = pde_data(inode); return 0; } diff --git a/lustre/obdclass/lprocfs_status.c b/lustre/obdclass/lprocfs_status.c index 5c961cc..ab0435b 100644 --- a/lustre/obdclass/lprocfs_status.c +++ b/lustre/obdclass/lprocfs_status.c @@ -1413,7 +1413,7 @@ static int lprocfs_stats_seq_open(struct inode *inode, struct file *file) 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; } diff --git a/lustre/obdclass/lprocfs_status_server.c b/lustre/obdclass/lprocfs_status_server.c index d9de576..8e6c0b9 100644 --- a/lustre/obdclass/lprocfs_status_server.c +++ b/lustre/obdclass/lprocfs_status_server.c @@ -84,7 +84,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; @@ -92,7 +92,7 @@ int lprocfs_evict_client_open(struct inode *inode, struct file *f) 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); diff --git a/lustre/ptlrpc/nodemap_lproc.c b/lustre/ptlrpc/nodemap_lproc.c index bfc5a82..b8d2f4a 100644 --- a/lustre/ptlrpc/nodemap_lproc.c +++ b/lustre/ptlrpc/nodemap_lproc.c @@ -115,7 +115,7 @@ static int nodemap_idmap_show(struct seq_file *m, void *data) */ 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)); } /** @@ -175,7 +175,7 @@ static int nodemap_ranges_show(struct seq_file *m, void *data) */ 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)); } /** @@ -374,7 +374,7 @@ static int nodemap_exports_show(struct seq_file *m, void *data) */ 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)); } /** diff --git a/lustre/quota/lproc_quota.c b/lustre/quota/lproc_quota.c index c95fb9e..2d634b7 100644 --- a/lustre/quota/lproc_quota.c +++ b/lustre/quota/lproc_quota.c @@ -285,7 +285,7 @@ static int lprocfs_quota_seq_open(struct inode *inode, struct file *file) 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); -- 1.8.3.1