|To:||Timothy Shimmin <tes@xxxxxxx>|
|Subject:||Re: [PATCH] xfs: revert to double-buffering readdir|
|From:||Stephen Lord <lord@xxxxxxx>|
|Date:||Fri, 30 Nov 2007 16:36:25 -0600|
|Cc:||Christoph Hellwig <hch@xxxxxxxxxxxxx>, Chris Wedgwood <cw@xxxxxxxx>, linux-xfs@xxxxxxxxxxx, LKML <linux-kernel@xxxxxxxxxxxxxxx>|
|References:||<20071114070400.GA25708@puku.stupidest.org> <20071125163014.GA17922@infradead.org> <474FBA21.email@example.com>|
Wow, was it really that long ago!
Looks like the readdir is in the bowels of the btree code when filldir gets called
here, there are probably locks on several buffers in the btree at this point. This
will only show up for large directories I bet.
The xfs readdir code has the complete xfs inode number in its hands at this point
(filldir is not necessarily getting all the bits of it). All we are doing the lookup
for really is to get the inode number back again so we can get the inode
and get the attributes. Rather dumb really. There has got to be a way of
doing a callout structure here so that the inode number can be pushed
through filldir and back into an fs specific call. The fs then can do a lookup
by id - which is what it does most of the time for resolving nfs handles
anyway. Should be more efficient than the current scheme.
Just rambling, not a single line of code was consulted in writing this message.
You want to make a big fat btree directory for testing this stuff. Make sure it gets
at least a couple of layers of node blocks.
On Nov 30, 2007, at 1:22 AM, Timothy Shimmin wrote:
Christoph Hellwig wrote:The current readdir implementation deadlocks on a btree buffers locks because nfsd calls back into ->lookup from the filldir callback. The only short-term fix for this is to revert to the old inefficient double-buffering scheme.
|<Prev in Thread]||Current Thread||[Next in Thread>|
|Previous by Date:||Re: 2.6.24-rc3 oopses while mounting fs, KELEMEN Peter|
|Next by Date:||Re: [PATCH] xfs: revert to double-buffering readdir, Chris Wedgwood|
|Previous by Thread:||Re: [PATCH] xfs: revert to double-buffering readdir, Timothy Shimmin|
|Next by Thread:||Re: [PATCH] xfs: revert to double-buffering readdir, Chris Wedgwood|
|Indexes:||[Date] [Thread] [Top] [All Lists]|