Skip to content

Commit

Permalink
scsi: esas2r: Introduce scsi_template_proc_dir()
Browse files Browse the repository at this point in the history
Prepare for removing the 'proc_dir' and 'present' members from the SCSI
host template. This commit does not change any functionality.

Reviewed-by: John Garry <[email protected]>
Cc: Bradley Grove <[email protected]>
Cc: Christoph Hellwig <[email protected]>
Cc: Ming Lei <[email protected]>
Cc: Hannes Reinecke <[email protected]>
Cc: Mike Christie <[email protected]>
Cc: Krzysztof Kozlowski <[email protected]>
Signed-off-by: Bart Van Assche <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Martin K. Petersen <[email protected]>
  • Loading branch information
bvanassche authored and martinkpetersen committed Oct 18, 2022
1 parent b6da923 commit 77916da
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 6 deletions.
17 changes: 11 additions & 6 deletions drivers/scsi/esas2r/esas2r_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -635,10 +635,13 @@ static void __exit esas2r_exit(void)
esas2r_log(ESAS2R_LOG_INFO, "%s called", __func__);

if (esas2r_proc_major > 0) {
struct proc_dir_entry *proc_dir;

esas2r_log(ESAS2R_LOG_INFO, "unregister proc");

remove_proc_entry(ATTONODE_NAME,
esas2r_proc_host->hostt->proc_dir);
proc_dir = scsi_template_proc_dir(esas2r_proc_host->hostt);
if (proc_dir)
remove_proc_entry(ATTONODE_NAME, proc_dir);
unregister_chrdev(esas2r_proc_major, ESAS2R_DRVR_NAME);

esas2r_proc_major = 0;
Expand Down Expand Up @@ -728,11 +731,13 @@ const char *esas2r_info(struct Scsi_Host *sh)
esas2r_proc_major);

if (esas2r_proc_major > 0) {
struct proc_dir_entry *pde;
struct proc_dir_entry *proc_dir;
struct proc_dir_entry *pde = NULL;

pde = proc_create(ATTONODE_NAME, 0,
sh->hostt->proc_dir,
&esas2r_proc_ops);
proc_dir = scsi_template_proc_dir(sh->hostt);
if (proc_dir)
pde = proc_create(ATTONODE_NAME, 0, proc_dir,
&esas2r_proc_ops);

if (!pde) {
esas2r_log_dev(ESAS2R_LOG_WARN,
Expand Down
11 changes: 11 additions & 0 deletions drivers/scsi/scsi_proc.c
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,17 @@ static int proc_scsi_host_open(struct inode *inode, struct file *file)
4 * PAGE_SIZE);
}

/**
* scsi_template_proc_dir() - returns the procfs dir for a SCSI host template
* @sht: SCSI host template pointer.
*/
struct proc_dir_entry *
scsi_template_proc_dir(const struct scsi_host_template *sht)
{
return sht->proc_dir;
}
EXPORT_SYMBOL_GPL(scsi_template_proc_dir);

static const struct proc_ops proc_scsi_ops = {
.proc_open = proc_scsi_host_open,
.proc_release = single_release,
Expand Down
6 changes: 6 additions & 0 deletions include/scsi/scsi_host.h
Original file line number Diff line number Diff line change
Expand Up @@ -751,6 +751,12 @@ extern struct Scsi_Host *scsi_host_alloc(struct scsi_host_template *, int);
extern int __must_check scsi_add_host_with_dma(struct Scsi_Host *,
struct device *,
struct device *);
#if defined(CONFIG_SCSI_PROC_FS)
struct proc_dir_entry *
scsi_template_proc_dir(const struct scsi_host_template *sht);
#else
#define scsi_template_proc_dir(sht) NULL
#endif
extern void scsi_scan_host(struct Scsi_Host *);
extern void scsi_rescan_device(struct device *);
extern void scsi_remove_host(struct Scsi_Host *);
Expand Down

0 comments on commit 77916da

Please sign in to comment.