iincref returns new ref
This commit is contained in:
		
							parent
							
								
									35a24c8318
								
							
						
					
					
						commit
						d80b06a1e0
					
				
					 3 changed files with 7 additions and 8 deletions
				
			
		
							
								
								
									
										2
									
								
								defs.h
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								defs.h
									
										
									
									
									
								
							|  | @ -128,7 +128,7 @@ void ilock(struct inode*); | |||
| void iunlock(struct inode*); | ||||
| void itrunc(struct inode*); | ||||
| void idecref(struct inode*); | ||||
| void iincref(struct inode*); | ||||
| struct inode* iincref(struct inode*); | ||||
| void iput(struct inode*); | ||||
| struct inode* namei(char*, int, uint*, char**, struct inode**); | ||||
| void stati(struct inode*, struct stat*); | ||||
|  |  | |||
							
								
								
									
										10
									
								
								fs.c
									
										
									
									
									
								
							
							
						
						
									
										10
									
								
								fs.c
									
										
									
									
									
								
							|  | @ -266,8 +266,7 @@ iunlock(struct inode *ip) | |||
| uint | ||||
| bmap(struct inode *ip, uint bn) | ||||
| { | ||||
|   unsigned x; | ||||
|   uint *a; | ||||
|   uint *a, x; | ||||
|   struct buf *inbp; | ||||
| 
 | ||||
|   if(bn >= MAXFILE) | ||||
|  | @ -350,12 +349,14 @@ idecref(struct inode *ip) | |||
| } | ||||
| 
 | ||||
| // Increment reference count for ip.
 | ||||
| void | ||||
| // Returns ip to enable ip = iincref(ip1) idiom.
 | ||||
| struct inode* | ||||
| iincref(struct inode *ip) | ||||
| { | ||||
|   ilock(ip); | ||||
|   ip->ref++; | ||||
|   iunlock(ip); | ||||
|   return ip; | ||||
| } | ||||
| 
 | ||||
| // Copy stat information from inode.
 | ||||
|  | @ -511,8 +512,7 @@ namei(char *path, int mode, uint *ret_off, | |||
|   if(*cp == '/') | ||||
|     dp = iget(rootdev, 1); | ||||
|   else { | ||||
|     dp = p->cwd; | ||||
|     iincref(dp); | ||||
|     dp = iincref(p->cwd); | ||||
|     ilock(dp); | ||||
|   } | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										3
									
								
								proc.c
									
										
									
									
									
								
							
							
						
						
									
										3
									
								
								proc.c
									
										
									
									
									
								
							|  | @ -150,8 +150,7 @@ copyproc(struct proc *p) | |||
|       fileincref(np->ofile[i]); | ||||
|   } | ||||
| 
 | ||||
|   np->cwd = p->cwd; | ||||
|   iincref(p->cwd); | ||||
|   np->cwd = iincref(p->cwd); | ||||
| 
 | ||||
|   return np; | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 rsc
						rsc