]> err.no Git - linux-2.6/blobdiff - mm/shmem.c
[PATCH] shmem_populate: avoid an useless check, and some comments
[linux-2.6] / mm / shmem.c
index 5a81b1ee4f7a43fc972d7ec762f2d51d7ac8aa42..08a3bc2fba61897dab763b687c926d44ca6fde0a 100644 (file)
@@ -1195,6 +1195,7 @@ static int shmem_populate(struct vm_area_struct *vma,
                err = shmem_getpage(inode, pgoff, &page, sgp, NULL);
                if (err)
                        return err;
+               /* Page may still be null, but only if nonblock was set. */
                if (page) {
                        mark_page_accessed(page);
                        err = install_page(mm, vma, addr, page, prot);
@@ -1202,7 +1203,10 @@ static int shmem_populate(struct vm_area_struct *vma,
                                page_cache_release(page);
                                return err;
                        }
-               } else if (nonblock) {
+               } else {
+                       /* No page was found just because we can't read it in
+                        * now (being here implies nonblock != 0), but the page
+                        * may exist, so set the PTE to fault it in later. */
                        err = install_file_pte(mm, vma, addr, pgoff, prot);
                        if (err)
                                return err;