Messages in this thread |  | | | Date | Fri, 4 Apr 2008 13:14:17 +1000 | | From | David Chinner <> | | Subject | Re: ext3 lockdep warning in 2.6.25-rc6 | |
On Wed, Apr 02, 2008 at 10:12:15AM +0200, Jan Kara wrote:
> On Tue 01-04-08 17:23:34, Erez Zadok wrote:
> <snip>
<snip>
> > Jan, I'll be happy to test this, but I don't understand two things about
> > this patch:
> >
> > 1. Is it safe to unlock and re-lock inode_lock temporarily within the loop?
> >
> > 2. What's the motivation behind having the second toput_inode pointer? It
> > appears that the first iteration through the loop, toput_inode will be
> > NULL, so we'll be iput'ing a NULL pointer (which is ok). So you're
> > trying to iput the previous inode pointer that the list iterated over,
> > right? Is that intended?
> I'll try to explain the locking here:
> 1) We are not allowed to call into __invalidate_mapping_pages() with
> inode_lock held - that it the bug lockdep is complaining about. Moreover it
> leads to rather long waiting times for inode_lock (quite possibly several
> seconds).
When you have tens of millions of cached inodes, it can take somewhat
longer than a few seconds.... :/
Cheers,
Dave.
--
Dave Chinner
Principal Engineer
SGI Australian Software Group
|  |