Shorten sys_unlink a little; create now fits in column

This commit is contained in:
Austin Clements 2011-09-02 15:20:27 -04:00
parent 9bb1e53df5
commit 4e015d81aa
1 changed files with 10 additions and 13 deletions

View File

@ -188,26 +188,18 @@ sys_unlink(void)
ilock(dp);
// Cannot unlink "." or "..".
if(namecmp(name, ".") == 0 || namecmp(name, "..") == 0){
iunlockput(dp);
commit_trans();
return -1;
}
if(namecmp(name, ".") == 0 || namecmp(name, "..") == 0)
goto bad;
if((ip = dirlookup(dp, name, &off)) == 0){
iunlockput(dp);
commit_trans();
return -1;
}
if((ip = dirlookup(dp, name, &off)) == 0)
goto bad;
ilock(ip);
if(ip->nlink < 1)
panic("unlink: nlink < 1");
if(ip->type == T_DIR && !isdirempty(ip)){
iunlockput(ip);
iunlockput(dp);
commit_trans();
return -1;
goto bad;
}
memset(&de, 0, sizeof(de));
@ -226,6 +218,11 @@ sys_unlink(void)
commit_trans();
return 0;
bad:
iunlockput(dp);
commit_trans();
return -1;
}
static struct inode*