diff --git a/quic/core/quic_packet_writer.h b/quic/core/quic_packet_writer.h
index 5f6b681..bd10523 100644
--- a/quic/core/quic_packet_writer.h
+++ b/quic/core/quic_packet_writer.h
@@ -78,6 +78,26 @@
   //
   // Options must be either null, or created for the particular QuicPacketWriter
   // implementation. Options may be ignored, depending on the implementation.
+  //
+  // Some comment about memory management if |buffer| was previously acquired
+  // by a call to "GetNextWriteLocation()":
+  //
+  // a) When WRITE_STATUS_OK is returned, the caller expects the writer owns the
+  // packet buffers and they will be released when the write finishes.
+  //
+  // b) When this function returns any status >= WRITE_STATUS_ERROR, the caller
+  // expects the writer releases the buffer (if needed) before the function
+  // returns.
+  //
+  // c) When WRITE_STATUS_BLOCKED is returned, the caller makes a copy of the
+  // buffer and will retry after unblock, so if |payload| is allocated from
+  // GetNextWriteLocation(), it
+  //    1) needs to be released before return, and
+  //    2) the content of |payload| should not change after return.
+  //
+  // d) When WRITE_STATUS_BLOCKED_DATA_BUFFERED is returned, the caller expects
+  // 1) the writer owns the packet buffers, and 2) the writer will re-send the
+  // packet when it unblocks.
   virtual WriteResult WritePacket(const char* buffer,
                                   size_t buf_len,
                                   const QuicIpAddress& self_address,
@@ -121,9 +141,13 @@
   // Try send all buffered packets.
   // - Return WriteResult(WRITE_STATUS_OK, <bytes_flushed>) if all buffered
   //   packets were sent successfully.
-  // - Return WRITE_STATUS_BLOCKED, or an error status, if the underlying socket
-  //   is blocked or returned an error while sending. Some packets may have been
-  //   sent, packets not sent will stay in the internal buffer.
+  // - Return WRITE_STATUS_BLOCKED if the underlying socket is blocked while
+  //   sending. Some packets may have been sent, packets not sent will stay in
+  //   the internal buffer.
+  // - Return a status >= WRITE_STATUS_ERROR if an error was encuontered while
+  //   sending. As this is not a re-tryable error, any batched packets which
+  //   were on memory acquired via GetNextWriteLocation() should be released and
+  //   the batch should be dropped.
   virtual WriteResult Flush() = 0;
 };
 
diff --git a/quic/core/quic_types.h b/quic/core/quic_types.h
index b8a77a9..76d3bab 100644
--- a/quic/core/quic_types.h
+++ b/quic/core/quic_types.h
@@ -148,6 +148,9 @@
   // Number of packets dropped as a result of this write.
   // Only used by batch writers. Otherwise always 0.
   uint16_t dropped_packets = 0;
+  // TODO(wub): In some cases, WRITE_STATUS_ERROR may set an error_code and
+  // WRITE_STATUS_BLOCKED_DATA_BUFFERED may set bytes_written. This may need
+  // some cleaning up so that perhaps both values can be set and valid.
   union {
     int bytes_written;  // only valid when status is WRITE_STATUS_OK
     int error_code;     // only valid when status is WRITE_STATUS_ERROR
