On Mon, Jun 25, 2001 at 12:05:14PM -0500, Jeff Dike wrote:
> [EMAIL PROTECTED] said:
> > I am running in to a problem, seemingly a deadlock situation, where
> > almost all the processes end up in the TASK_UNINTERRUPTIBLE state.
> > All the process eventually stop responding, including login shell, no
> > screen updates, keyboard etc.  Can ping and sysrq key works.   I
> > traced the tasks through sysrq-t key.  The processors are in the idle
> > state.  Tasks all seem to get stuck in the __wait_on_page or
> > __lock_page.
> 
> I've seen this under UML, Rik van Riel has seen it on a physical box, and we 
> suspect that they're the same problem (i.e. mine isn't a UML-specific bug).
> 
> I've done some poking at the problem, but haven't really learned anything 
> except that something is locking pages and not unlocking them.  Figuring out 
> who that is was going to be my next step.

Could it be smbfs? The following piece of code from smb_writepage
looks like it could return with the page locked:


      static int
      smb_writepage(struct page *page)
      {

              /*   ....    */

              /* easy case */
              if (page->index < end_index)
                      goto do_it;
              /* things got complicated... */
              offset = inode->i_size & (PAGE_CACHE_SIZE-1);
              /* OK, are we completely out? */
              if (page->index >= end_index+1 || !offset)
                      return -EIO;           <=====   This looks bad!
      do_it:
              get_page(page);
              err = smb_writepage_sync(inode, page, 0, offset);
              SetPageUptodate(page);
              UnlockPage(page);
              put_page(page);
              return err;
      }


   regards     Christian

-- 
THAT'S ALL FOLKS!
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to