VM_BUG_ON_FOLIO(!folio_contains(folio, index), folio);
 
        /*
-        * We have a locked page in the page cache, now we need to check
-        * that it's up-to-date. If not, it is going to be due to an error.
+        * We have a locked folio in the page cache, now we need to check
+        * that it's up-to-date. If not, it is going to be due to an error,
+        * or because readahead was otherwise unable to retrieve it.
         */
        if (unlikely(!folio_test_uptodate(folio))) {
                /*
-                * The page was in cache and uptodate and now it is not.
-                * Strange but possible since we didn't hold the page lock all
-                * the time. Let's drop everything get the invalidate lock and
-                * try again.
+                * If the invalidate lock is not held, the folio was in cache
+                * and uptodate and now it is not. Strange but possible since we
+                * didn't hold the page lock all the time. Let's drop
+                * everything, get the invalidate lock and try again.
                 */
                if (!mapping_locked) {
                        folio_unlock(folio);
                        folio_put(folio);
                        goto retry_find;
                }
+
+               /*
+                * OK, the folio is really not uptodate. This can be because the
+                * VMA has the VM_RAND_READ flag set, or because an error
+                * arose. Let's read it in directly.
+                */
                goto page_not_uptodate;
        }