#include <9pm/u.h>
#include <9pm/libc.h>
#include <9pm/fcall.h>
#include <9pm/ns.h>
vlong
seek(int fd, vlong off, int from)
{
volatile vlong ret;
volatile Chan *c;
c = nil;
ret = -1;
checkerrstack();
if(!waserror()){
c = fd2chan(fd, -1);
ret = (*c->mnt->dev->_seek)(c, off, from);
poperror();
}
if(c)
cclose(c);
checkerrstack();
return ret;
}