mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 18:32:45 +00:00 
			
		
		
		
	Kernel: Mark syscalls that get/set user/group ID as not needing big lock
Now that these operate on the neatly atomic and immutable Credentials object, they should no longer require the process big lock for synchronization. :^)
This commit is contained in:
		
							parent
							
								
									122d7d9533
								
							
						
					
					
						commit
						998c1152ef
					
				
					 3 changed files with 30 additions and 30 deletions
				
			
		|  | @ -10,35 +10,35 @@ namespace Kernel { | |||
| 
 | ||||
| ErrorOr<FlatPtr> Process::sys$getuid() | ||||
| { | ||||
|     VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this); | ||||
|     VERIFY_NO_PROCESS_BIG_LOCK(this); | ||||
|     TRY(require_promise(Pledge::stdio)); | ||||
|     return uid().value(); | ||||
| } | ||||
| 
 | ||||
| ErrorOr<FlatPtr> Process::sys$getgid() | ||||
| { | ||||
|     VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this); | ||||
|     VERIFY_NO_PROCESS_BIG_LOCK(this); | ||||
|     TRY(require_promise(Pledge::stdio)); | ||||
|     return gid().value(); | ||||
| } | ||||
| 
 | ||||
| ErrorOr<FlatPtr> Process::sys$geteuid() | ||||
| { | ||||
|     VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this); | ||||
|     VERIFY_NO_PROCESS_BIG_LOCK(this); | ||||
|     TRY(require_promise(Pledge::stdio)); | ||||
|     return euid().value(); | ||||
| } | ||||
| 
 | ||||
| ErrorOr<FlatPtr> Process::sys$getegid() | ||||
| { | ||||
|     VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this); | ||||
|     VERIFY_NO_PROCESS_BIG_LOCK(this); | ||||
|     TRY(require_promise(Pledge::stdio)); | ||||
|     return egid().value(); | ||||
| } | ||||
| 
 | ||||
| ErrorOr<FlatPtr> Process::sys$getresuid(Userspace<UserID*> user_ruid, Userspace<UserID*> user_euid, Userspace<UserID*> user_suid) | ||||
| { | ||||
|     VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this); | ||||
|     VERIFY_NO_PROCESS_BIG_LOCK(this); | ||||
|     TRY(require_promise(Pledge::stdio)); | ||||
| 
 | ||||
|     auto credentials = this->credentials(); | ||||
|  | @ -54,7 +54,7 @@ ErrorOr<FlatPtr> Process::sys$getresuid(Userspace<UserID*> user_ruid, Userspace< | |||
| 
 | ||||
| ErrorOr<FlatPtr> Process::sys$getresgid(Userspace<GroupID*> user_rgid, Userspace<GroupID*> user_egid, Userspace<GroupID*> user_sgid) | ||||
| { | ||||
|     VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this); | ||||
|     VERIFY_NO_PROCESS_BIG_LOCK(this); | ||||
|     TRY(require_promise(Pledge::stdio)); | ||||
| 
 | ||||
|     auto credentials = this->credentials(); | ||||
|  | @ -70,7 +70,7 @@ ErrorOr<FlatPtr> Process::sys$getresgid(Userspace<GroupID*> user_rgid, Userspace | |||
| 
 | ||||
| ErrorOr<FlatPtr> Process::sys$getgroups(size_t count, Userspace<GroupID*> user_gids) | ||||
| { | ||||
|     VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this); | ||||
|     VERIFY_NO_PROCESS_BIG_LOCK(this); | ||||
|     TRY(require_promise(Pledge::stdio)); | ||||
| 
 | ||||
|     auto credentials = this->credentials(); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Andreas Kling
						Andreas Kling