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

Commit f1a43f93 authored by Akinobu Mita's avatar Akinobu Mita Committed by Linus Torvalds
Browse files

ipc: use simple_read_from_buffer()



Also this patch kills unneccesary trailing NULL character.

Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
Cc: Nadia Derbey <Nadia.Derbey@bull.net>
Cc: Manfred Spraul <manfred@colorfullife.com>
Cc: Pierre Peiffer <peifferp@gmail.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 380af1b3
Loading
Loading
Loading
Loading
+7 −18
Original line number Diff line number Diff line
@@ -318,11 +318,7 @@ static ssize_t mqueue_read_file(struct file *filp, char __user *u_data,
{
	struct mqueue_inode_info *info = MQUEUE_I(filp->f_path.dentry->d_inode);
	char buffer[FILENT_SIZE];
	size_t slen;
	loff_t o;

	if (!count)
		return 0;
	ssize_t ret;

	spin_lock(&info->lock);
	snprintf(buffer, sizeof(buffer),
@@ -335,21 +331,14 @@ static ssize_t mqueue_read_file(struct file *filp, char __user *u_data,
			pid_vnr(info->notify_owner));
	spin_unlock(&info->lock);
	buffer[sizeof(buffer)-1] = '\0';
	slen = strlen(buffer)+1;

	o = *off;
	if (o > slen)
		return 0;

	if (o + count > slen)
		count = slen - o;

	if (copy_to_user(u_data, buffer + o, count))
		return -EFAULT;
	ret = simple_read_from_buffer(u_data, count, off, buffer,
				strlen(buffer));
	if (ret <= 0)
		return ret;

	*off = o + count;
	filp->f_path.dentry->d_inode->i_atime = filp->f_path.dentry->d_inode->i_ctime = CURRENT_TIME;
	return count;
	return ret;
}

static int mqueue_flush_file(struct file *filp, fl_owner_t id)