aboutsummaryrefslogtreecommitdiffstats
path: root/fs/proc/inode.c
diff options
context:
space:
mode:
authorMuchun Song <[email protected]>2022-01-22 06:14:20 +0000
committerLinus Torvalds <[email protected]>2022-01-22 06:33:37 +0000
commit6dfbbae14a7b961f41d80a106e1ab60e86d061c5 (patch)
tree487d7ecefb4ad5b67b697fd7f99567a795c23455 /fs/proc/inode.c
parentzsmalloc: replace get_cpu_var with local_lock (diff)
downloadkernel-6dfbbae14a7b961f41d80a106e1ab60e86d061c5.tar.gz
kernel-6dfbbae14a7b961f41d80a106e1ab60e86d061c5.zip
fs: proc: store PDE()->data into inode->i_private
PDE_DATA(inode) is introduced to get user private data and hide the layout of struct proc_dir_entry. The inode->i_private is used to do the same thing as well. Save a copy of user private data to inode-> i_private when proc inode is allocated. This means the user also can get their private data by inode->i_private. Introduce pde_data() to wrap inode->i_private so that we can remove PDE_DATA() from fs/proc/generic.c and make PTE_DATE() as a wrapper of pde_data(). It will be easier if we decide to remove PDE_DATE() in the future. Link: https://lkml.kernel.org/r/[email protected] Signed-off-by: Muchun Song <[email protected]> Acked-by: Christian Brauner <[email protected]> Cc: Alexey Dobriyan <[email protected]> Cc: Alexey Gladkov <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'fs/proc/inode.c')
-rw-r--r--fs/proc/inode.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/proc/inode.c b/fs/proc/inode.c
index 599eb724ff2d..f84355c5a36d 100644
--- a/fs/proc/inode.c
+++ b/fs/proc/inode.c
@@ -650,6 +650,7 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de)
return NULL;
}
+ inode->i_private = de->data;
inode->i_ino = de->low_ino;
inode->i_mtime = inode->i_atime = inode->i_ctime = current_time(inode);
PROC_I(inode)->pde = de;