diff options
author | David Howells <dhowells@redhat.com> | 2013-04-12 15:06:01 +0200 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2013-05-01 23:29:42 +0200 |
commit | 4a520d2769beb736ba2bd084b8293ce148a1a7ae (patch) | |
tree | 023a339c1f2ecf7bd1b051a725f4c720f1908c0f /drivers/scsi/megaraid.c | |
parent | airo: Use remove_proc_subtree() (diff) | |
download | linux-4a520d2769beb736ba2bd084b8293ce148a1a7ae.tar.xz linux-4a520d2769beb736ba2bd084b8293ce148a1a7ae.zip |
proc: Supply an accessor for getting the data from a PDE's parent
Supply an accessor function for getting the private data from the parent
proc_dir_entry struct of the proc_dir_entry struct associated with an inode.
ReiserFS, for instance, stores the super_block pointer in the proc directory
it makes for that super_block, and a pointer to the respective seq_file show
function in each of the proc files in that directory.
This allows a reduction in the number of file_operations structs, open
functions and seq_operations structs required. The problem otherwise is that
each show function requires two pieces of data but only has storage for one
per PDE (and this has no release function).
Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
cc: Jerry Chuang <jerry-chuang@realtek.com>
cc: Maxim Mikityanskiy <maxtram95@gmail.com>
cc: YAMANE Toshiaki <yamanetoshi@gmail.com>
cc: linux-wireless@vger.kernel.org
cc: linux-scsi@vger.kernel.org
cc: devel@driverdev.osuosl.org
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'drivers/scsi/megaraid.c')
-rw-r--r-- | drivers/scsi/megaraid.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/scsi/megaraid.c b/drivers/scsi/megaraid.c index ef3384d39e11..7373255aa1e8 100644 --- a/drivers/scsi/megaraid.c +++ b/drivers/scsi/megaraid.c @@ -2760,7 +2760,7 @@ proc_show_rdrv_40(struct seq_file *m, void *v) */ static int mega_proc_open(struct inode *inode, struct file *file) { - adapter_t *adapter = PDE(inode)->parent->data; + adapter_t *adapter = proc_get_parent_data(inode); int (*show)(struct seq_file *, void *) = PDE_DATA(inode); return single_open(file, show, adapter); |