On Mon, Jun 19, 2006 at 07:28:33PM +0100, Al Viro wrote: > On Mon, Jun 19, 2006 at 05:17:50PM +0400, Evgeniy Dushistov wrote: > > In case of 1k fragments, msync of two pages > > cause 8 calls of ufs's get_block_t with create == 1, > > they will be consequent because of synchronization. > > _What_ synchronization? > Now, which lock would, in your opinion, provide serialization between these > two calls? They apply to different pages, so page locks do not help. > you can look at fs/ufs/inode.c: ufs_getfrag_block. It is ufs's get_block_t, if create == 1 it uses "[un]lock_kernel". > To simplify the analysis, have one of those do msync() and another - write(). > One triggers writeback, leading to ufs_writepage(). Another leads to call > of ufs_prepare_write(). Note that the latter call is process-synchronous, > so no implicit serialization could apply. skiped I'll think about this. -- /Evgeniy - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html