diff options
Diffstat (limited to 'fs/configfs/file.c')
-rw-r--r-- | fs/configfs/file.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/fs/configfs/file.c b/fs/configfs/file.c index 403269ffcdf3..d39099ea7df7 100644 --- a/fs/configfs/file.c +++ b/fs/configfs/file.c | |||
@@ -65,7 +65,6 @@ static int fill_read_buffer(struct dentry * dentry, struct configfs_buffer * buf | |||
65 | { | 65 | { |
66 | struct configfs_attribute * attr = to_attr(dentry); | 66 | struct configfs_attribute * attr = to_attr(dentry); |
67 | struct config_item * item = to_item(dentry->d_parent); | 67 | struct config_item * item = to_item(dentry->d_parent); |
68 | struct configfs_item_operations * ops = buffer->ops; | ||
69 | int ret = 0; | 68 | int ret = 0; |
70 | ssize_t count; | 69 | ssize_t count; |
71 | 70 | ||
@@ -74,7 +73,8 @@ static int fill_read_buffer(struct dentry * dentry, struct configfs_buffer * buf | |||
74 | if (!buffer->page) | 73 | if (!buffer->page) |
75 | return -ENOMEM; | 74 | return -ENOMEM; |
76 | 75 | ||
77 | count = ops->show_attribute(item,attr,buffer->page); | 76 | count = attr->show(item, buffer->page); |
77 | |||
78 | buffer->needs_read_fill = 0; | 78 | buffer->needs_read_fill = 0; |
79 | BUG_ON(count > (ssize_t)SIMPLE_ATTR_SIZE); | 79 | BUG_ON(count > (ssize_t)SIMPLE_ATTR_SIZE); |
80 | if (count >= 0) | 80 | if (count >= 0) |
@@ -171,9 +171,8 @@ flush_write_buffer(struct dentry * dentry, struct configfs_buffer * buffer, size | |||
171 | { | 171 | { |
172 | struct configfs_attribute * attr = to_attr(dentry); | 172 | struct configfs_attribute * attr = to_attr(dentry); |
173 | struct config_item * item = to_item(dentry->d_parent); | 173 | struct config_item * item = to_item(dentry->d_parent); |
174 | struct configfs_item_operations * ops = buffer->ops; | ||
175 | 174 | ||
176 | return ops->store_attribute(item,attr,buffer->page,count); | 175 | return attr->store(item, buffer->page, count); |
177 | } | 176 | } |
178 | 177 | ||
179 | 178 | ||
@@ -237,8 +236,7 @@ static int check_perm(struct inode * inode, struct file * file) | |||
237 | * and we must have a store method. | 236 | * and we must have a store method. |
238 | */ | 237 | */ |
239 | if (file->f_mode & FMODE_WRITE) { | 238 | if (file->f_mode & FMODE_WRITE) { |
240 | 239 | if (!(inode->i_mode & S_IWUGO) || !attr->store) | |
241 | if (!(inode->i_mode & S_IWUGO) || !ops->store_attribute) | ||
242 | goto Eaccess; | 240 | goto Eaccess; |
243 | 241 | ||
244 | } | 242 | } |
@@ -248,7 +246,7 @@ static int check_perm(struct inode * inode, struct file * file) | |||
248 | * must be a show method for it. | 246 | * must be a show method for it. |
249 | */ | 247 | */ |
250 | if (file->f_mode & FMODE_READ) { | 248 | if (file->f_mode & FMODE_READ) { |
251 | if (!(inode->i_mode & S_IRUGO) || !ops->show_attribute) | 249 | if (!(inode->i_mode & S_IRUGO) || !attr->show) |
252 | goto Eaccess; | 250 | goto Eaccess; |
253 | } | 251 | } |
254 | 252 | ||