@@ -533,10 +533,10 @@ struct cgroup_subsys devices_subsys = {
533
533
*
534
534
* returns 0 on success, -EPERM case the operation is not permitted
535
535
*/
536
- static int __devcgroup_check_permission (struct dev_cgroup * dev_cgroup ,
537
- short type , u32 major , u32 minor ,
536
+ static int __devcgroup_check_permission (short type , u32 major , u32 minor ,
538
537
short access )
539
538
{
539
+ struct dev_cgroup * dev_cgroup ;
540
540
struct dev_exception_item ex ;
541
541
int rc ;
542
542
@@ -547,6 +547,7 @@ static int __devcgroup_check_permission(struct dev_cgroup *dev_cgroup,
547
547
ex .access = access ;
548
548
549
549
rcu_read_lock ();
550
+ dev_cgroup = task_devcgroup (current );
550
551
rc = may_access (dev_cgroup , & ex );
551
552
rcu_read_unlock ();
552
553
@@ -558,7 +559,6 @@ static int __devcgroup_check_permission(struct dev_cgroup *dev_cgroup,
558
559
559
560
int __devcgroup_inode_permission (struct inode * inode , int mask )
560
561
{
561
- struct dev_cgroup * dev_cgroup = task_devcgroup (current );
562
562
short type , access = 0 ;
563
563
564
564
if (S_ISBLK (inode -> i_mode ))
@@ -570,13 +570,12 @@ int __devcgroup_inode_permission(struct inode *inode, int mask)
570
570
if (mask & MAY_READ )
571
571
access |= ACC_READ ;
572
572
573
- return __devcgroup_check_permission (dev_cgroup , type , imajor (inode ),
574
- iminor ( inode ), access );
573
+ return __devcgroup_check_permission (type , imajor ( inode ), iminor (inode ),
574
+ access );
575
575
}
576
576
577
577
int devcgroup_inode_mknod (int mode , dev_t dev )
578
578
{
579
- struct dev_cgroup * dev_cgroup = task_devcgroup (current );
580
579
short type ;
581
580
582
581
if (!S_ISBLK (mode ) && !S_ISCHR (mode ))
@@ -587,7 +586,7 @@ int devcgroup_inode_mknod(int mode, dev_t dev)
587
586
else
588
587
type = DEV_CHAR ;
589
588
590
- return __devcgroup_check_permission (dev_cgroup , type , MAJOR (dev ),
591
- MINOR ( dev ), ACC_MKNOD );
589
+ return __devcgroup_check_permission (type , MAJOR ( dev ), MINOR (dev ),
590
+ ACC_MKNOD );
592
591
593
592
}
0 commit comments