mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-03-30 11:04:25 +00:00
binfmt_misc: use simple_read_from_buffer()
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
76a6f3dc9a
commit
6e2c10a12a
1 changed files with 3 additions and 17 deletions
|
@ -27,6 +27,7 @@
|
||||||
#include <linux/namei.h>
|
#include <linux/namei.h>
|
||||||
#include <linux/mount.h>
|
#include <linux/mount.h>
|
||||||
#include <linux/syscalls.h>
|
#include <linux/syscalls.h>
|
||||||
|
#include <linux/fs.h>
|
||||||
|
|
||||||
#include <asm/uaccess.h>
|
#include <asm/uaccess.h>
|
||||||
|
|
||||||
|
@ -535,31 +536,16 @@ static ssize_t
|
||||||
bm_entry_read(struct file * file, char __user * buf, size_t nbytes, loff_t *ppos)
|
bm_entry_read(struct file * file, char __user * buf, size_t nbytes, loff_t *ppos)
|
||||||
{
|
{
|
||||||
Node *e = file->f_path.dentry->d_inode->i_private;
|
Node *e = file->f_path.dentry->d_inode->i_private;
|
||||||
loff_t pos = *ppos;
|
|
||||||
ssize_t res;
|
ssize_t res;
|
||||||
char *page;
|
char *page;
|
||||||
int len;
|
|
||||||
|
|
||||||
if (!(page = (char*) __get_free_page(GFP_KERNEL)))
|
if (!(page = (char*) __get_free_page(GFP_KERNEL)))
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
entry_status(e, page);
|
entry_status(e, page);
|
||||||
len = strlen(page);
|
|
||||||
|
|
||||||
res = -EINVAL;
|
res = simple_read_from_buffer(buf, nbytes, ppos, page, strlen(page));
|
||||||
if (pos < 0)
|
|
||||||
goto out;
|
|
||||||
res = 0;
|
|
||||||
if (pos >= len)
|
|
||||||
goto out;
|
|
||||||
if (len < pos + nbytes)
|
|
||||||
nbytes = len - pos;
|
|
||||||
res = -EFAULT;
|
|
||||||
if (copy_to_user(buf, page + pos, nbytes))
|
|
||||||
goto out;
|
|
||||||
*ppos = pos + nbytes;
|
|
||||||
res = nbytes;
|
|
||||||
out:
|
|
||||||
free_page((unsigned long) page);
|
free_page((unsigned long) page);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue