On Mon, Jun 19, 2006 at 10:58:16PM +0400, Evgeniy Dushistov wrote: > 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". Which is fsck-all protection, since then you proceed to do a lot of blocking operations. Now, lock_super() down in balloc.c _might_ be enough, but I wouldn't bet on that. - 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