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