diff --git a/src/backend/storage/aio/README.md b/src/backend/storage/aio/README.md
index 0076ea4aa10..db3257c2705 100644
--- a/src/backend/storage/aio/README.md
+++ b/src/backend/storage/aio/README.md
@@ -15,7 +15,7 @@ In this example, a buffer will be read into shared buffers.
 PgAioReturn ioret;
 
 /*
- * Acquire AIO Handle, ioret will get result upon completion.
+ * Acquire an AIO Handle, ioret will get the result upon completion.
  */
 PgAioHandle *ioh = pgaio_io_get(CurrentResourceOwner, &ioret);
 
@@ -46,15 +46,15 @@ pgaio_io_add_shared_cb(ioh, ASC_SHARED_BUFFER_READ);
 pgaio_io_set_io_data_32(ioh, (uint32 *) buffer, 1);
 
 /*
- * Hand AIO handle to lower-level function. When operating on the level of
+ * Pass the AIO handle to lower-level function. When operating on the level of
  * buffers, we don't know how exactly the IO is performed, that is the
  * responsibility of the storage manager implementation.
  *
  * E.g. md.c needs to translate block numbers into offsets in segments.
  *
- * Once the IO handle has been handed of, it may not further be used, as the
- * IO may immediately get executed below smgrstartreadv() and the handle reused
- * for another IO.
+ * Once the IO handle has been handed off to smgrstartreadv(), it may not
+ * further be used, as the IO may immediately get executed in smgrstartreadv()
+ * and the handle reused for another IO.
  */
 smgrstartreadv(ioh, operation->smgr, forknum, blkno,
                BufferGetBlock(buffer), 1);
@@ -167,7 +167,7 @@ The main reason *not* to use Direct IO are:
   explicit prefetching.
 - In situations where shared_buffers cannot be set appropriately large,
   e.g. because there are many different postgres instances hosted on shared
-  hardware, performance will often be worse then when using buffered IO.
+  hardware, performance will often be worse than when using buffered IO.
 
 
 ### Deadlock and Starvation Dangers due to AIO
diff --git a/src/backend/storage/aio/aio.c b/src/backend/storage/aio/aio.c
index 261a752fb80..1cef6ef556b 100644
--- a/src/backend/storage/aio/aio.c
+++ b/src/backend/storage/aio/aio.c
@@ -123,10 +123,10 @@ static PgAioHandle *inj_cur_handle;
  *
  * If a handle was acquired but then does not turn out to be needed,
  * e.g. because pgaio_io_get() is called before starting an IO in a critical
- * section, the handle needs to be be released with pgaio_io_release().
+ * section, the handle needs to be released with pgaio_io_release().
  *
  *
- * To react to the completion of the IO as soon as it is know to have
+ * To react to the completion of the IO as soon as it is known to have
  * completed, callbacks can be registered with pgaio_io_add_shared_cb().
  *
  * To actually execute IO using the returned handle, the pgaio_io_prep_*()
diff --git a/src/backend/storage/aio/aio_io.c b/src/backend/storage/aio/aio_io.c
index 3c255775833..9e111c04b7e 100644
--- a/src/backend/storage/aio/aio_io.c
+++ b/src/backend/storage/aio/aio_io.c
@@ -31,7 +31,7 @@ static void pgaio_io_before_prep(PgAioHandle *ioh);
 /* --------------------------------------------------------------------------------
  * "Preparation" routines for individual IO types
  *
- * These are called by place the place actually initiating an IO, to associate
+ * These are called by XXX place the place actually initiating an IO, to associate
  * the IO specific data with an AIO handle.
  *
  * Each of the preparation routines first needs to call
diff --git a/src/include/storage/aio_internal.h b/src/include/storage/aio_internal.h
index f4c57438dd4..7a81e211d48 100644
--- a/src/include/storage/aio_internal.h
+++ b/src/include/storage/aio_internal.h
@@ -38,12 +38,13 @@ typedef enum PgAioHandleState
 	AHS_HANDED_OUT,
 
 	/* pgaio_io_start_*() has been called, but IO hasn't been submitted yet */
+	/* XXX: there are no pgaio_io_start_*() functions */
 	AHS_DEFINED,
 
-	/* subjects prepare() callback has been called */
+	/* subject's prepare() callback has been called */
 	AHS_PREPARED,
 
-	/* IO is being executed */
+	/* IO has been submitted and is being executed */
 	AHS_IN_FLIGHT,
 
 	/* IO finished, but result has not yet been processed */
