From f0721f1be4c017d7e8d9d79b249fa04dda14a9ec Mon Sep 17 00:00:00 2001 From: rsc Date: Wed, 22 Aug 2007 06:20:10 +0000 Subject: tweaks --- fs.c | 40 ++++++++++++++++++---------------------- 1 file changed, 18 insertions(+), 22 deletions(-) (limited to 'fs.c') 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* -- cgit v1.2.3