rem: if (fd >= 0 && fd < ioctx->table_size && ioctx->fds[fd]) {  f = ioctx->fds[fd]; atomic_add(&f->ref_count, 1); } else { f = NULL; }
add: mutex_lock(&context->io_mutex);
context: get_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];		atomic_add(&f->ref_count, 1); 	} else {		f = NULL;	}	mutex_unlock(&ioctx->io_mutex);	return f;}