Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a69755b1 authored by Al Viro's avatar Al Viro
Browse files

xtensa simdisk: switch to proc_create_data()



Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 78846ce6
Loading
Loading
Loading
Loading
+23 −13
Original line number Diff line number Diff line
@@ -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 @@ static int proc_write_simdisk(struct file *file, const char *buffer,
	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: