[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <1201548879.6784.13.camel@norville.austin.ibm.com>
Date: Mon, 28 Jan 2008 19:34:39 +0000
From: Dave Kleikamp <shaggy@...ux.vnet.ibm.com>
To: Steve French <smfrench@...il.com>
Cc: Andi Kleen <ak@...e.de>, Andrew Morton <akpm@...ux-foundation.org>,
Trond Myklebust <Trond.Myklebust@...app.com>,
swhiteho@...hat.com, sfrench@...ba.org, vandrove@...cvut.cz,
linux-kernel@...r.kernel.org, linux-fsdevel@...r.kernel.org
Subject: Re: [PATCH] [8/18] BKL-removal: Remove BKL from remote_llseek
On Mon, 2008-01-28 at 12:33 -0600, Steve French wrote:
> On Jan 28, 2008 2:17 AM, Andi Kleen <ak@...e.de> wrote:
> > > I completely agree. If one thread writes A and another writes B then the
> > > kernel should record either A or B, not ((A & 0xffffffff00000000) | (B &
> > > 0xffffffff))
> >
> > The problem is pretty nasty unfortunately. To solve it properly I think
> > the file_operations->read/write prototypes would need to be changed
> > because otherwise it is not possible to do atomic relative updates
> > of f_pos. Right now the actual update is burrowed deeply in the low level
> > read/write implementation. But that would be a huge impact all over
> > the tree :/
>
> If there were a wrapper around reads and writes of f_pos as there is
> for i_size e.g. it would hit a lot of code, but not as many as I had
> originally thought. the most important ones are in the vfs itself, where
> there are only 59 uses of the field (not all need to be changed). ext3
> has fewer (25), and cifs only 12 uses.
Most of the uses in ext3 and cifs deal with a directory's f_pos in
readdir, which is protected by i_mutex, so I don't think we need to
worry about them at all.
--
David Kleikamp
IBM Linux Technology Center
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists