On Mon, Apr 11, 2011 at 05:46:52PM -0700, Mingming Cao wrote: > Oh, right. Currently ext4_page_mkwrite drops the page lock before > calling it's dirty the page (by write_begin() and write_end(). I > suspect regrab the lock() after write_end() (with your proposed change) > and returning with locked still leave the dirty by ext4_page_mkwrite > unlocked. We probably should to keep the page locked the page during > the entire ext4_page_mkwrite() call. Any reason to drop the page lock() > before calling aops->write_begin()? write_begin takes the page lock by itself. That's one of the reasons why block_page_mkwrite doesn't use plain ->write_begin / write_end, the other beeing that we already get a page passed to use, so there's no need to do the pagecache lookup or allocation done by grab_cache_page_write_begin. The best thing would be to completely drop ext4's current version of page_mkwrite and start out with a copy of block_page_mkwrite which has the journalling calls added back into it. -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html