summaryrefslogtreecommitdiff
path: root/fs.c
diff options
context:
space:
mode:
authorrsc <rsc>2007-08-22 06:20:10 +0000
committerrsc <rsc>2007-08-22 06:20:10 +0000
commitf0721f1be4c017d7e8d9d79b249fa04dda14a9ec (patch)
treec34456032437c873c5bc7439665a4184cb2eabe1 /fs.c
parenteaea18cb9cbb86018dae8f1decfa217ecbe85fa5 (diff)
downloadxv6-labs-f0721f1be4c017d7e8d9d79b249fa04dda14a9ec.tar.gz
xv6-labs-f0721f1be4c017d7e8d9d79b249fa04dda14a9ec.tar.bz2
xv6-labs-f0721f1be4c017d7e8d9d79b249fa04dda14a9ec.zip
tweaks
Diffstat (limited to 'fs.c')
-rw-r--r--fs.c40
1 files changed, 18 insertions, 22 deletions
diff --git a/fs.c b/fs.c
index 69bfd8f..e47b6fa 100644
--- a/fs.c
+++ b/fs.c
@@ -524,11 +524,11 @@ dirlink(struct inode *dp, char *name, uint ino)
{
int off;
struct dirent de;
- struct uinode *ip;
+ struct uinode *ipu;
// Check that name is not present.
- if((ip = dirlookup(dp, name, 0)) != 0){
- iput(ip);
+ if((ipu = dirlookup(dp, name, 0)) != 0){
+ iput(ipu);
return -1;
}
@@ -593,43 +593,39 @@ skipelem(char *path, char *name)
static struct uinode*
_namei(char *path, int parent, char *name)
{
- struct uinode *dp, *ip;
- struct inode *dpl;
+ struct uinode *dpu, *ipu;
+ struct inode *dp;
uint off;
if(*path == '/')
- dp = iget(ROOTDEV, 1);
+ dpu = iget(ROOTDEV, 1);
else
- dp = idup(cp->cwd);
+ dpu = idup(cp->cwd);
while((path = skipelem(path, name)) != 0){
- dpl = ilock(dp);
- if(dpl->type != T_DIR){
- iunlock(dpl);
- iput(dp);
+ dp = ilock(dpu);
+ if(dp->type != T_DIR){
+ iput(iunlock(dp));
return 0;
}
if(parent && *path == '\0'){
// Stop one level early.
- iunlock(dpl);
- return dp;
+ iunlock(dp);
+ return dpu;
}
- if((ip = dirlookup(dpl, name, &off)) == 0){
- iunlock(dpl);
- iput(dp);
- iput(ip);
+ if((ipu = dirlookup(dp, name, &off)) == 0){
+ iput(iunlock(dp));
+ iput(ipu);
return 0;
}
-
- iunlock(dpl);
- iput(dp);
- dp = ip;
+ iput(iunlock(dp));
+ dpu = ipu;
}
if(parent)
return 0;
- return dp;
+ return dpu;
}
struct uinode*