#include <9pm/u.h>
#include <9pm/libc.h>
#include <9pm/fcall.h>
#include <9pm/ns.h>

int
fstat(int fd, uchar *edir, int nedir)
{
	volatile long m;
	volatile Chan *c;

	c = nil;
	checkerrstack();
	m = -1;
	if(!waserror()){
		c = fd2chan(fd, -1);
		m = (*c->mnt->dev->_fstat)(c, edir, nedir);
		validstat(edir, m);
		mntdirfix(edir, c->mnt);
		poperror();
	}
	if(c)
		cclose(c);
	checkerrstack();
	return m;
}


syntax highlighted by Code2HTML, v. 0.9.1