]> Pileus Git - ~andy/linux/blobdiff - fs/sysfs/bin.c
hlist: drop the node parameter from iterators
[~andy/linux] / fs / sysfs / bin.c
index 614b2b544880c002cf650b9510302ede56939921..15c68f9489ae616f556c0e323ff7190d2f7cd088 100644 (file)
@@ -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);
        }