#include <9pm/u.h>
#include <9pm/libc.h>
#include <9pm/ns.h>
int
chdir(char *dir)
{
int ret;
char *fullpath, *path;
Mnt *mnt;
Proc *p;
if((path = nsassign(dir, &mnt, &fullpath)) == nil)
return -1;
ret = -1;
checkerrstack();
if(!waserror()){
(*mnt->dev->_chdir)(mnt, path);
ret = 0;
p = getproc();
free(p->wd);
p->wd = fullpath;
poperror();
}
checkerrstack();
return ret;
}
|