xtensa simdisk: switch to proc_create_data()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Родитель
78846ce66d
Коммит
a69755b187
|
@ -214,20 +214,27 @@ static int simdisk_detach(struct simdisk *dev)
|
|||
return err;
|
||||
}
|
||||
|
||||
static int proc_read_simdisk(char *page, char **start, off_t off,
|
||||
int count, int *eof, void *data)
|
||||
static ssize_t proc_read_simdisk(struct file *file, char __user *buf,
|
||||
size_t size, loff_t *ppos)
|
||||
{
|
||||
int len;
|
||||
struct simdisk *dev = (struct simdisk *) data;
|
||||
len = sprintf(page, "%s\n", dev->filename ? dev->filename : "");
|
||||
return len;
|
||||
struct simdisk *dev = PDE(file_inode(file))->data;
|
||||
char *s = dev->filename;
|
||||
if (s) {
|
||||
ssize_t n = simple_read_from_buffer(buf, size, ppos,
|
||||
s, strlen(s));
|
||||
if (n < 0)
|
||||
return n;
|
||||
buf += n;
|
||||
size -= n;
|
||||
}
|
||||
return simple_read_from_buffer(buf, size, ppos, "\n", 1);
|
||||
}
|
||||
|
||||
static int proc_write_simdisk(struct file *file, const char *buffer,
|
||||
unsigned long count, void *data)
|
||||
static ssize_t proc_write_simdisk(struct file *file, const char __user *buf,
|
||||
size_t size, loff_t *ppos)
|
||||
{
|
||||
char *tmp = kmalloc(count + 1, GFP_KERNEL);
|
||||
struct simdisk *dev = (struct simdisk *) data;
|
||||
struct simdisk *dev = PDE(file_inode(file))->data;
|
||||
int err;
|
||||
|
||||
if (tmp == NULL)
|
||||
|
@ -256,6 +263,12 @@ out_free:
|
|||
return err;
|
||||
}
|
||||
|
||||
static const struct file_operations fops = {
|
||||
.read = proc_read_simdisk,
|
||||
.write = proc_write_simdisk,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
static int __init simdisk_setup(struct simdisk *dev, int which,
|
||||
struct proc_dir_entry *procdir)
|
||||
{
|
||||
|
@ -289,10 +302,7 @@ static int __init simdisk_setup(struct simdisk *dev, int which,
|
|||
set_capacity(dev->gd, 0);
|
||||
add_disk(dev->gd);
|
||||
|
||||
dev->procfile = create_proc_entry(tmp, 0644, procdir);
|
||||
dev->procfile->data = dev;
|
||||
dev->procfile->read_proc = proc_read_simdisk;
|
||||
dev->procfile->write_proc = proc_write_simdisk;
|
||||
dev->procfile = proc_create_data(tmp, 0644, procdir, &fops, dev);
|
||||
return 0;
|
||||
|
||||
out_alloc_disk:
|
||||
|
|
Загрузка…
Ссылка в новой задаче