diff options
Diffstat (limited to 'fs/sysfs/bin.c')
| -rw-r--r-- | fs/sysfs/bin.c | 9 | 
1 files changed, 4 insertions, 5 deletions
diff --git a/fs/sysfs/bin.c b/fs/sysfs/bin.c index 614b2b544880..15c68f9489ae 100644 --- a/fs/sysfs/bin.c +++ b/fs/sysfs/bin.c @@ -70,7 +70,7 @@ static ssize_t  read(struct file *file, char __user *userbuf, size_t bytes, loff_t *off)  {  	struct bin_buffer *bb = file->private_data; -	int size = file->f_path.dentry->d_inode->i_size; +	int size = file_inode(file)->i_size;  	loff_t offs = *off;  	int count = min_t(size_t, bytes, PAGE_SIZE);  	char *temp; @@ -140,7 +140,7 @@ static ssize_t write(struct file *file, const char __user *userbuf,  		     size_t bytes, loff_t *off)  {  	struct bin_buffer *bb = file->private_data; -	int size = file->f_path.dentry->d_inode->i_size; +	int size = file_inode(file)->i_size;  	loff_t offs = *off;  	int count = min_t(size_t, bytes, PAGE_SIZE);  	char *temp; @@ -461,15 +461,14 @@ const struct file_operations bin_fops = {  void unmap_bin_file(struct sysfs_dirent *attr_sd)  {  	struct bin_buffer *bb; -	struct hlist_node *tmp;  	if (sysfs_type(attr_sd) != SYSFS_KOBJ_BIN_ATTR)  		return;  	mutex_lock(&sysfs_bin_lock); -	hlist_for_each_entry(bb, tmp, &attr_sd->s_bin_attr.buffers, list) { -		struct inode *inode = bb->file->f_path.dentry->d_inode; +	hlist_for_each_entry(bb, &attr_sd->s_bin_attr.buffers, list) { +		struct inode *inode = file_inode(bb->file);  		unmap_mapping_range(inode->i_mapping, 0, 0, 1);  	}  |