Shorten sys_unlink a little; create now fits in column
This commit is contained in:
parent
9bb1e53df5
commit
4e015d81aa
1 changed files with 10 additions and 13 deletions
23
sysfile.c
23
sysfile.c
|
@ -188,26 +188,18 @@ sys_unlink(void)
|
||||||
ilock(dp);
|
ilock(dp);
|
||||||
|
|
||||||
// Cannot unlink "." or "..".
|
// Cannot unlink "." or "..".
|
||||||
if(namecmp(name, ".") == 0 || namecmp(name, "..") == 0){
|
if(namecmp(name, ".") == 0 || namecmp(name, "..") == 0)
|
||||||
iunlockput(dp);
|
goto bad;
|
||||||
commit_trans();
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if((ip = dirlookup(dp, name, &off)) == 0){
|
if((ip = dirlookup(dp, name, &off)) == 0)
|
||||||
iunlockput(dp);
|
goto bad;
|
||||||
commit_trans();
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
ilock(ip);
|
ilock(ip);
|
||||||
|
|
||||||
if(ip->nlink < 1)
|
if(ip->nlink < 1)
|
||||||
panic("unlink: nlink < 1");
|
panic("unlink: nlink < 1");
|
||||||
if(ip->type == T_DIR && !isdirempty(ip)){
|
if(ip->type == T_DIR && !isdirempty(ip)){
|
||||||
iunlockput(ip);
|
iunlockput(ip);
|
||||||
iunlockput(dp);
|
goto bad;
|
||||||
commit_trans();
|
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(&de, 0, sizeof(de));
|
memset(&de, 0, sizeof(de));
|
||||||
|
@ -226,6 +218,11 @@ sys_unlink(void)
|
||||||
commit_trans();
|
commit_trans();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
bad:
|
||||||
|
iunlockput(dp);
|
||||||
|
commit_trans();
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct inode*
|
static struct inode*
|
||||||
|
|
Loading…
Reference in a new issue