[PATCH 0/4] remove PDE_DATA()

From: Muchun Song
Date: Mon Nov 01 2021 - 06:04:19 EST


I found a bug [1] some days ago, which is because we want to use
inode->i_private to pass user private data. However, this is wrong
on proc fs. We provide a specific function PDE_DATA() to get user
private data. Actually, we can hide this detail by storing
PDE()->data into inode->i_private and removing PDE_DATA() completely.
The user could use inode->i_private to get user private data just
like debugfs does. This series is trying to remove PDE_DATA().

[1] https://lore.kernel.org/lkml/20211029032638.84884-1-songmuchun@xxxxxxxxxxxxx/

Muchun Song (4):
fs: proc: store PDE()->data into inode->i_private
fs: proc: replace PDE_DATA(inode) with inode->i_private
fs: proc: remove PDE_DATA()
fs: proc: use DEFINE_PROC_SHOW_ATTRIBUTE() to simplify the code

arch/alpha/kernel/srm_env.c | 4 ++--
arch/arm/kernel/atags_proc.c | 2 +-
arch/ia64/kernel/salinfo.c | 10 ++++-----
arch/powerpc/kernel/proc_powerpc.c | 4 ++--
arch/sh/mm/alignment.c | 2 +-
arch/xtensa/platforms/iss/simdisk.c | 4 ++--
drivers/acpi/proc.c | 2 +-
drivers/hwmon/dell-smm-hwmon.c | 4 ++--
drivers/net/bonding/bond_procfs.c | 8 ++++----
drivers/net/wireless/cisco/airo.c | 22 ++++++++++----------
drivers/net/wireless/intersil/hostap/hostap_ap.c | 16 +++++++--------
.../net/wireless/intersil/hostap/hostap_download.c | 2 +-
drivers/net/wireless/intersil/hostap/hostap_proc.c | 24 +++++++++++-----------
drivers/net/wireless/ray_cs.c | 2 +-
drivers/nubus/proc.c | 2 +-
drivers/parisc/led.c | 4 ++--
drivers/pci/proc.c | 10 ++++-----
drivers/platform/x86/thinkpad_acpi.c | 4 ++--
drivers/platform/x86/toshiba_acpi.c | 16 +++++++--------
drivers/pnp/isapnp/proc.c | 2 +-
drivers/pnp/pnpbios/proc.c | 4 ++--
drivers/scsi/scsi_proc.c | 4 ++--
drivers/usb/gadget/function/rndis.c | 4 ++--
drivers/zorro/proc.c | 2 +-
fs/afs/proc.c | 6 +++---
fs/cifs/cifs_debug.c | 17 ++-------------
fs/ext4/mballoc.c | 14 ++++++-------
fs/jbd2/journal.c | 2 +-
fs/nfsd/stats.c | 15 ++------------
fs/proc/generic.c | 6 ------
fs/proc/inode.c | 1 +
fs/proc/internal.h | 5 -----
fs/proc/proc_net.c | 12 +++++------
include/linux/proc_fs.h | 2 --
include/linux/seq_file.h | 2 +-
ipc/util.c | 2 +-
kernel/irq/proc.c | 8 ++++----
kernel/resource.c | 4 ++--
net/atm/proc.c | 4 ++--
net/bluetooth/af_bluetooth.c | 8 ++++----
net/can/bcm.c | 2 +-
net/can/proc.c | 2 +-
net/core/neighbour.c | 6 +++---
net/core/pktgen.c | 6 +++---
net/ipv4/netfilter/ipt_CLUSTERIP.c | 6 +++---
net/ipv4/raw.c | 8 ++++----
net/ipv4/tcp_ipv4.c | 2 +-
net/ipv4/udp.c | 6 +++---
net/netfilter/x_tables.c | 10 ++++-----
net/netfilter/xt_hashlimit.c | 18 ++++++++--------
net/netfilter/xt_recent.c | 4 ++--
net/sunrpc/auth_gss/svcauth_gss.c | 4 ++--
net/sunrpc/cache.c | 24 +++++++++++-----------
net/sunrpc/stats.c | 15 ++------------
sound/core/info.c | 4 ++--
55 files changed, 168 insertions(+), 215 deletions(-)

--
2.11.0