Re: [PATCH 1/5]: ufs: missed brelse and wrong baseblk

From: Evgeniy Dushistov
Date: Mon Jun 19 2006 - 14:52:19 EST


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-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/