rem: if (atomic_add(&descriptor->open_count, -1) == 1) { if (descriptor->ops->fd_close) descriptor->ops->fd_close(descriptor); }
add: close_fd(descriptor);
context: common_close(int fd, bool kernel){	struct io_context *io = get_current_io_context(kernel);	struct file_descriptor *descriptor = remove_fd(io, fd);	if (descriptor == NULL)		return B_FILE_ERROR;	#ifdef TRACE_FD		if (!kernel)			TRACE(("_user_close(descriptor = %p)\n", descriptor));	#endif	if (atomic_add(&descriptor->open_count, -1) == 1) {		if (descriptor->ops->fd_close)			descriptor->ops->fd_close(descriptor);	}	put_fd(descriptor);		// the reference associated with the slot	return B_OK;}