rem: mutex_lock(&ioctx->io_mutex);
add: if (fd < 0) return;
context: remove_fd(struct io_context *ioctx, int fd){	struct file_descriptor *f;	mutex_lock(&ioctx->io_mutex);	if (fd >= 0 && fd < ioctx->table_size && ioctx->fds[fd]) {		// valid fd		f = ioctx->fds[fd];		ioctx->fds[fd] = NULL;		ioctx->num_used_fds--;	} else {		f = NULL;	}	mutex_unlock(&ioctx->io_mutex);	if (f)		put_fd(f);}