rem: ssize_t retval;
add: status_t status;
context: user_fstat(int fd, struct stat *stat){	struct file_descriptor *descriptor;	ssize_t retval;	/* This is a user_function, so abort if we have a kernel address */	CHECK_USER_ADDR(stat)	descriptor = get_fd(get_current_io_context(false), fd);	if (descriptor == NULL)		return EBADF;	TRACE(("user_fstat(descriptor = %p)\n",descriptor));	if (descriptor->ops->fd_stat) {		// we're using the stat buffer on the stack to not have to		// lock the given stat buffer in memory		struct stat kstat;		retval = descriptor->ops->fd_stat(descriptor, &kstat);		if (retval >= 0)			retval = user_memcpy(stat, &kstat, sizeof(*stat));	} else		retval = EOPNOTSUPP;	put_fd(descriptor);	return retval;}