aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/sysfs/file.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/fs/sysfs/file.c b/fs/sysfs/file.c
index 5d818df7250b..c3795978b404 100644
--- a/fs/sysfs/file.c
+++ b/fs/sysfs/file.c
@@ -275,11 +275,10 @@ static ssize_t sysfs_write_file(struct file *file, const char __user *user_buf,
275{ 275{
276 struct sysfs_open_file *of = sysfs_of(file); 276 struct sysfs_open_file *of = sysfs_of(file);
277 ssize_t len = min_t(size_t, count, PAGE_SIZE); 277 ssize_t len = min_t(size_t, count, PAGE_SIZE);
278 loff_t size = file_inode(file)->i_size;
278 char *buf; 279 char *buf;
279 280
280 if (sysfs_is_bin(of->sd)) { 281 if (sysfs_is_bin(of->sd) && size) {
281 loff_t size = file_inode(file)->i_size;
282
283 if (size <= *ppos) 282 if (size <= *ppos)
284 return 0; 283 return 0;
285 len = min_t(ssize_t, len, size - *ppos); 284 len = min_t(ssize_t, len, size - *ppos);