- /* Already closing? Don't close twice. */
- if (conn->plan[IO_IN].status == IO_CLOSING)
- return &conn->plan[IO_IN];
-
- conn->plan[IO_IN].status = conn->plan[IO_OUT].status = IO_CLOSING;
- conn->plan[IO_IN].arg.u1.s = errno;
- backend_new_closing(conn);
-
- return io_set_plan(conn, IO_IN, NULL, NULL, NULL);