|
|
sysfs_write_file(struct file *file, const char __user *buf, size_t count, loff_t *ppos) | sysfs_write_file(struct file *file, const char __user *buf, size_t count, loff_t *ppos) |
{ | { |
struct sysfs_buffer * buffer = file->private_data; | struct sysfs_buffer * buffer = file->private_data; |
|
ssize_t len; |
| |
down(&buffer->sem); | down(&buffer->sem); |
count = fill_write_buffer(buffer,buf,count); |
len = fill_write_buffer(buffer, buf, count); |
if (count > 0) |
if (len > 0) |
count = flush_write_buffer(file->f_dentry,buffer,count); |
len = flush_write_buffer(file->f_dentry, buffer, len); |
if (count > 0) |
if (len > 0) |
*ppos += count; |
*ppos += len; |
up(&buffer->sem); | up(&buffer->sem); |
return count; |
return len; |
} | } |
| |
static int check_perm(struct inode * inode, struct file * file) | static int check_perm(struct inode * inode, struct file * file) |