Skip to content
Snippets Groups Projects
Commit d80b06a1 authored by rsc's avatar rsc
Browse files

iincref returns new ref

parent 35a24c83
No related branches found
No related tags found
No related merge requests found
......@@ -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*);
......
......@@ -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);
}
......
......@@ -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;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment