Skip to content

Commit

Permalink
sysfs: make bin attr open get active reference of parent too
Browse files Browse the repository at this point in the history
All bin attr operations require active references of itself and its
parent.  There's no reason to allow open when its parent has been
deactivated and allowing it is inconsistent with regular sysfs file.
Use sysfs_get_active_two() in bin attribute open function.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Tejun Heo authored and Greg Kroah-Hartman committed Oct 12, 2007
1 parent 50ab1a7 commit 078ce64
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions fs/sysfs/bin.c
Original file line number Diff line number Diff line change
Expand Up @@ -171,8 +171,8 @@ static int open(struct inode * inode, struct file * file)
struct bin_buffer *bb = NULL;
int error;

/* need attr_sd for attr */
if (!sysfs_get_active(attr_sd))
/* binary file operations requires both @sd and its parent */
if (!sysfs_get_active_two(attr_sd))
return -ENODEV;

error = -EACCES;
Expand All @@ -193,12 +193,12 @@ static int open(struct inode * inode, struct file * file)
mutex_init(&bb->mutex);
file->private_data = bb;

/* open succeeded, put active reference */
sysfs_put_active(attr_sd);
/* open succeeded, put active references */
sysfs_put_active_two(attr_sd);
return 0;

err_out:
sysfs_put_active(attr_sd);
sysfs_put_active_two(attr_sd);
kfree(bb);
return error;
}
Expand Down

0 comments on commit 078ce64

Please sign in to comment.