aboutsummaryrefslogtreecommitdiffstats
path: root/fs/libfs.c
diff options
context:
space:
mode:
authorWu Fengguang <fengguang.wu@intel.com>2009-09-18 16:06:03 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2009-09-24 07:47:30 -0400
commit05cc0cee6948fc11985d11557fb130645a7f69a6 (patch)
tree51c49ba648c4c6b1ed025b93d6fdb02394ab978a /fs/libfs.c
parent7a62cc10215838286c747f86766063d5f01fcbd6 (diff)
libfs: return error code on failed attr set
Currently all simple_attr.set handlers return 0 on success and negative codes on error. Fix simple_attr_write() to return these error codes. Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Cc: Theodore Ts'o <tytso@mit.edu> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Christoph Hellwig <hch@lst.de> Cc: Nick Piggin <npiggin@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/libfs.c')
-rw-r--r--fs/libfs.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/libfs.c b/fs/libfs.c
index 662a28e4f667..219576c52d80 100644
--- a/fs/libfs.c
+++ b/fs/libfs.c
@@ -739,10 +739,11 @@ ssize_t simple_attr_write(struct file *file, const char __user *buf,
739 if (copy_from_user(attr->set_buf, buf, size)) 739 if (copy_from_user(attr->set_buf, buf, size))
740 goto out; 740 goto out;
741 741
742 ret = len; /* claim we got the whole input */
743 attr->set_buf[size] = '\0'; 742 attr->set_buf[size] = '\0';
744 val = simple_strtol(attr->set_buf, NULL, 0); 743 val = simple_strtol(attr->set_buf, NULL, 0);
745 attr->set(attr->data, val); 744 ret = attr->set(attr->data, val);
745 if (ret == 0)
746 ret = len; /* on success, claim we got the whole input */
746out: 747out:
747 mutex_unlock(&attr->mutex); 748 mutex_unlock(&attr->mutex);
748 return ret; 749 return ret;