Re: NFS woes again

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2007-08-27 at 20:35 -0500, Florin Iucha wrote:
> On Mon, Aug 27, 2007 at 06:19:29PM -0700, Bret Towe wrote:
> > On 8/27/07, Trond Myklebust <[email protected]> wrote:
> > > > > this sounds alot like the post i did yesterday titled 'nfs4 hang regression'
> > > > > i tracked it down to commit 3d39c691ff486142dd9aaeac12f553f4476b7a6
> > > >
> > > > Yes, it certainly does -- all the symptoms match!
> > >
> > > Could you and Bret please check if the attached patch fixes the hang?
> >
> > no good for me still hangs after ~30minutes
> 
> I just booted into the new kernel
> (3d39c691ff486142dd9aaeac12f553f4476b7a6 + Trond's patch) and it hangs
> in 10-15 minutes.
> 
> Process traces available at http://iucha.net/nfs/23-rc2-nfs-fix-1/kernel.log.gz
> 
> Regards,
> florin

Doh! I see the problem: cancel_delayed_work_sync() shouldn't ever be
called recursively.

The following patch should be correct. Please just discard the previous
one...

Trond

--- Begin Message ---
Doh! We can't use cancel_delayed_work_sync because we may have been called
from an unmount that was being performed by nfs_automount_task.

Signed-off-by: Trond Myklebust <[email protected]>
---

 fs/nfs/namespace.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/fs/nfs/namespace.c b/fs/nfs/namespace.c
index aea76d0..acfc56f 100644
--- a/fs/nfs/namespace.c
+++ b/fs/nfs/namespace.c
@@ -176,7 +176,7 @@ static void nfs_expire_automounts(struct work_struct *work)
 void nfs_release_automount_timer(void)
 {
 	if (list_empty(&nfs_automount_list))
-		cancel_delayed_work_sync(&nfs_automount_task);
+		cancel_delayed_work(&nfs_automount_task);
 }
 
 /*

--- End Message ---

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux