scsi: qedi: off by one in qedi_get_cmd_from_tid()
[platform/kernel/linux-rpi.git] / mm / truncate.c
index 6479ed2..2330223 100644 (file)
@@ -530,9 +530,15 @@ unsigned long invalidate_mapping_pages(struct address_space *mapping,
                        } else if (PageTransHuge(page)) {
                                index += HPAGE_PMD_NR - 1;
                                i += HPAGE_PMD_NR - 1;
-                               /* 'end' is in the middle of THP */
-                               if (index ==  round_down(end, HPAGE_PMD_NR))
+                               /*
+                                * 'end' is in the middle of THP. Don't
+                                * invalidate the page as the part outside of
+                                * 'end' could be still useful.
+                                */
+                               if (index > end) {
+                                       unlock_page(page);
                                        continue;
+                               }
                        }
 
                        ret = invalidate_inode_page(page);