aa-150-read_write_tweaks

Andrew Morton (akpm@zip.com.au)
Tue, 19 Mar 2002 20:00:48 -0800


- 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/