summaryrefslogtreecommitdiff
path: root/defs.h
diff options
context:
space:
mode:
authorrtm <rtm>2006-08-13 12:22:44 +0000
committerrtm <rtm>2006-08-13 12:22:44 +0000
commit211ff0c67ea6737853cf932313cf4e27cc15f55c (patch)
treee28f2e9f39ddc226203c16e955337216bbdab7f5 /defs.h
parentc372e8dc348e4bb30aae7642db92ecbeedbc83ab (diff)
downloadxv6-labs-211ff0c67ea6737853cf932313cf4e27cc15f55c.tar.gz
xv6-labs-211ff0c67ea6737853cf932313cf4e27cc15f55c.tar.bz2
xv6-labs-211ff0c67ea6737853cf932313cf4e27cc15f55c.zip
namei returns locked parent dir inode for create / unlink
don't hold fd table lock across idecref() (latter does block i/o) idecref calls iput() in case last ref -> freeing inode dir size is 512 * # blocks, so readi/writei &c work unlink deletes dirent even if ip->nlink > 0
Diffstat (limited to 'defs.h')
-rw-r--r--defs.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/defs.h b/defs.h
index c8e1870..da47691 100644
--- a/defs.h
+++ b/defs.h
@@ -116,7 +116,7 @@ void ilock(struct inode *ip);
void iunlock(struct inode *ip);
void idecref(struct inode *ip);
void iput(struct inode *ip);
-struct inode * namei(char *path, uint *);
+struct inode * namei(char *path, int, uint *);
void stati(struct inode *ip, struct stat *st);
int readi(struct inode *ip, char *xdst, uint off, uint n);
int writei(struct inode *ip, char *addr, uint off, uint n);