|  | @@ -683,9 +683,15 @@ static void subchannel_ready(grpc_exec_ctx *exec_ctx, void *arg,
 | 
	
		
			
				|  |  |                                       "Failed to create subchannel", &error, 1));
 | 
	
		
			
				|  |  |    } else if (GET_CALL(calld) == CANCELLED_CALL) {
 | 
	
		
			
				|  |  |      /* already cancelled before subchannel became ready */
 | 
	
		
			
				|  |  | -    fail_locked(exec_ctx, calld,
 | 
	
		
			
				|  |  | -                GRPC_ERROR_CREATE_REFERENCING(
 | 
	
		
			
				|  |  | -                    "Cancelled before creating subchannel", &error, 1));
 | 
	
		
			
				|  |  | +    grpc_error *cancellation_error = GRPC_ERROR_CREATE_REFERENCING(
 | 
	
		
			
				|  |  | +        "Cancelled before creating subchannel", &error, 1);
 | 
	
		
			
				|  |  | +    /* if due to deadline, attach the deadline exceeded status to the error */
 | 
	
		
			
				|  |  | +    if (gpr_time_cmp(calld->deadline, gpr_now(GPR_CLOCK_MONOTONIC)) < 0) {
 | 
	
		
			
				|  |  | +      cancellation_error =
 | 
	
		
			
				|  |  | +          grpc_error_set_int(cancellation_error, GRPC_ERROR_INT_GRPC_STATUS,
 | 
	
		
			
				|  |  | +                             GRPC_STATUS_DEADLINE_EXCEEDED);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    fail_locked(exec_ctx, calld, cancellation_error);
 | 
	
		
			
				|  |  |    } else {
 | 
	
		
			
				|  |  |      /* Create call on subchannel. */
 | 
	
		
			
				|  |  |      grpc_subchannel_call *subchannel_call = NULL;
 | 
	
	
		
			
				|  | @@ -809,7 +815,6 @@ static bool pick_subchannel(grpc_exec_ctx *exec_ctx, grpc_call_element *elem,
 | 
	
		
			
				|  |  |          initial_metadata_flags &= ~GRPC_INITIAL_METADATA_WAIT_FOR_READY;
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | -    // TODO(dgq): make this deadline configurable somehow.
 | 
	
		
			
				|  |  |      const grpc_lb_policy_pick_args inputs = {
 | 
	
		
			
				|  |  |          initial_metadata, initial_metadata_flags, &calld->lb_token_mdelem,
 | 
	
		
			
				|  |  |          gpr_inf_future(GPR_CLOCK_MONOTONIC)};
 |