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

From: Al Viro
Date: Mon Jun 19 2006 - 15:11:50 EST


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-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/