aa-150-read_write_tweaks

From: Andrew Morton (akpm@zip.com.au)
Date: Tue Mar 19 2002 - 23:00:48 EST


- Don't do flush_page_to_ram() on the page fault-in path. That's
  handled in mm/memory.c, and filemap.c doesn't need to do it.

- In generic_file_write(), only set the page's Referenced bit once,
  when the write touches the start of the page. This is a
  microoptimisation. Seemingly a buggy one too - lseek exists...

=====================================

--- 2.4.19-pre3/mm/filemap.c~aa-150-read_write_tweaks Tue Mar 19 19:49:02 2002
+++ 2.4.19-pre3-akpm/mm/filemap.c Tue Mar 19 19:49:02 2002
@@ -1968,7 +1968,6 @@ success:
          * and possibly copy it over to another page..
          */
         mark_page_accessed(page);
- flush_page_to_ram(page);
         return page;
 
 no_cached_page:
@@ -3089,8 +3088,15 @@ generic_file_write(struct file *file,con
                 }
 unlock:
                 kunmap(page);
+
+ /*
+ * Mark the page accessed if we wrote the
+ * beginning or we just did an lseek.
+ */
+ if (!offset || !file->f_reada)
+ SetPageReferenced(page);
+
                 /* Mark it unlocked again and drop the page.. */
- SetPageReferenced(page);
                 UnlockPage(page);
                 page_cache_release(page);
 

-
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Mar 23 2002 - 22:00:20 EST