tizen: packaging: Add baselibs.conf to provide 64-bit kernel & modules for 32-bit...
[platform/kernel/linux-rpi.git] / mm / filemap.c
index f0a15ce..b1ef7be 100644 (file)
@@ -2667,6 +2667,15 @@ ssize_t filemap_read(struct kiocb *iocb, struct iov_iter *iter,
                end_offset = min_t(loff_t, isize, iocb->ki_pos + iter->count);
 
                /*
+                * Pairs with a barrier in
+                * block_write_end()->mark_buffer_dirty() or other page
+                * dirtying routines like iomap_write_end() to ensure
+                * changes to page contents are visible before we see
+                * increased inode size.
+                */
+               smp_rmb();
+
+               /*
                 * Once we start copying data, we don't want to be touching any
                 * cachelines that might be contended:
                 */
@@ -3422,7 +3431,7 @@ static bool filemap_map_pmd(struct vm_fault *vmf, struct folio *folio,
                }
        }
 
-       if (pmd_none(*vmf->pmd))
+       if (pmd_none(*vmf->pmd) && vmf->prealloc_pte)
                pmd_install(mm, vmf->pmd, &vmf->prealloc_pte);
 
        return false;