|  | @@ -447,14 +447,12 @@ static void fd_orphan(grpc_fd* fd, grpc_closure* on_done, int* release_fd,
 | 
	
		
			
				|  |  |      // Otherwise, we will receive epoll events after we release the FD.
 | 
	
		
			
				|  |  |      epoll_event ev_fd;
 | 
	
		
			
				|  |  |      memset(&ev_fd, 0, sizeof(ev_fd));
 | 
	
		
			
				|  |  | -    if (release_fd != nullptr) {
 | 
	
		
			
				|  |  | -      if (pollable_obj != nullptr) {  // For PO_FD.
 | 
	
		
			
				|  |  | -        epoll_ctl(pollable_obj->epfd, EPOLL_CTL_DEL, fd->fd, &ev_fd);
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -      for (size_t i = 0; i < fd->pollset_fds.size(); ++i) {  // For PO_MULTI.
 | 
	
		
			
				|  |  | -        const int epfd = fd->pollset_fds[i];
 | 
	
		
			
				|  |  | -        epoll_ctl(epfd, EPOLL_CTL_DEL, fd->fd, &ev_fd);
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | +    if (pollable_obj != nullptr) {  // For PO_FD.
 | 
	
		
			
				|  |  | +      epoll_ctl(pollable_obj->epfd, EPOLL_CTL_DEL, fd->fd, &ev_fd);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    for (size_t i = 0; i < fd->pollset_fds.size(); ++i) {  // For PO_MULTI.
 | 
	
		
			
				|  |  | +      const int epfd = fd->pollset_fds[i];
 | 
	
		
			
				|  |  | +      epoll_ctl(epfd, EPOLL_CTL_DEL, fd->fd, &ev_fd);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      *release_fd = fd->fd;
 | 
	
		
			
				|  |  |    } else {
 | 
	
	
		
			
				|  | @@ -1295,7 +1293,7 @@ static grpc_error* pollset_as_multipollable_locked(grpc_pollset* pollset,
 | 
	
		
			
				|  |  |  static void pollset_add_fd(grpc_pollset* pollset, grpc_fd* fd) {
 | 
	
		
			
				|  |  |    GPR_TIMER_SCOPE("pollset_add_fd", 0);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  // We never transition from PO_MULTI to other modes (i.e., PO_FD or PO_EMOPTY)
 | 
	
		
			
				|  |  | +  // We never transition from PO_MULTI to other modes (i.e., PO_FD or PO_EMPTY)
 | 
	
		
			
				|  |  |    // and, thus, it is safe to simply store and check whether the FD has already
 | 
	
		
			
				|  |  |    // been added to the active pollable previously.
 | 
	
		
			
				|  |  |    if (gpr_atm_acq_load(&pollset->active_pollable_type) == PO_MULTI &&
 |