Nick Piggin <[EMAIL PROTECTED]> writes: > Nick Piggin wrote: >> Eric W. Biederman wrote: > >>> When we initialize the ramdisk by writing to /dev/ram0 usually in >>> init/do_mounts_rd.c we don't allocate buffer heads but we do set >>> the dirty bit, and the page is in the page cache. So when we >>> later call getblk it reuses the same page and then calls >>> init_page_buffers. >> >> >> Hmm, so this would be a problem for block_dev.c as well, then? >> Because it would be possible to have a dirty block dev page >> have its buffers reclaimed and then reinitialised via >> init_page_buffers, AFAIKS. > > Oh, no, try_to_free_buffers won't drop dirty buffers. However we > could still set_page_dirty of a block device page without buffers > via an mmap.
After the page is made dirty via mmap we have: sys_write -> ... -> block_prepare_write -> ... -> create_empty_buffers. I suspect that is a pretty rare case but it does indeed seem to exist as a problem. Eric - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/