drbd: switch to proc_create_single
And stop messing with try_module_get on THIS_MODULE, which doesn't make any sense here. Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
4e292a9667
commit
004fd11db1
|
@ -1643,7 +1643,7 @@ void drbd_bump_write_ordering(struct drbd_resource *resource, struct drbd_backin
|
|||
|
||||
/* drbd_proc.c */
|
||||
extern struct proc_dir_entry *drbd_proc;
|
||||
extern const struct file_operations drbd_proc_fops;
|
||||
int drbd_seq_show(struct seq_file *seq, void *v);
|
||||
|
||||
/* drbd_actlog.c */
|
||||
extern bool drbd_al_begin_io_prepare(struct drbd_device *device, struct drbd_interval *i);
|
||||
|
|
|
@ -3010,7 +3010,8 @@ static int __init drbd_init(void)
|
|||
goto fail;
|
||||
|
||||
err = -ENOMEM;
|
||||
drbd_proc = proc_create_data("drbd", S_IFREG | S_IRUGO , NULL, &drbd_proc_fops, NULL);
|
||||
drbd_proc = proc_create_single("drbd", S_IFREG | S_IRUGO , NULL,
|
||||
drbd_seq_show);
|
||||
if (!drbd_proc) {
|
||||
pr_err("unable to register proc file\n");
|
||||
goto fail;
|
||||
|
|
|
@ -33,18 +33,7 @@
|
|||
#include <linux/drbd.h>
|
||||
#include "drbd_int.h"
|
||||
|
||||
static int drbd_proc_open(struct inode *inode, struct file *file);
|
||||
static int drbd_proc_release(struct inode *inode, struct file *file);
|
||||
|
||||
|
||||
struct proc_dir_entry *drbd_proc;
|
||||
const struct file_operations drbd_proc_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = drbd_proc_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = drbd_proc_release,
|
||||
};
|
||||
|
||||
static void seq_printf_with_thousands_grouping(struct seq_file *seq, long v)
|
||||
{
|
||||
|
@ -235,7 +224,7 @@ static void drbd_syncer_progress(struct drbd_device *device, struct seq_file *se
|
|||
}
|
||||
}
|
||||
|
||||
static int drbd_seq_show(struct seq_file *seq, void *v)
|
||||
int drbd_seq_show(struct seq_file *seq, void *v)
|
||||
{
|
||||
int i, prev_i = -1;
|
||||
const char *sn;
|
||||
|
@ -345,24 +334,3 @@ static int drbd_seq_show(struct seq_file *seq, void *v)
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int drbd_proc_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
int err;
|
||||
|
||||
if (try_module_get(THIS_MODULE)) {
|
||||
err = single_open(file, drbd_seq_show, NULL);
|
||||
if (err)
|
||||
module_put(THIS_MODULE);
|
||||
return err;
|
||||
}
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
static int drbd_proc_release(struct inode *inode, struct file *file)
|
||||
{
|
||||
module_put(THIS_MODULE);
|
||||
return single_release(inode, file);
|
||||
}
|
||||
|
||||
/* PROC FS stuff end */
|
||||
|
|
Loading…
Reference in a new issue