Re: NFS woes again

Bret Towe
2007-08-30T22:19:07Z

On 8/28/07, Bret Towe <magnade@gmail.com> wrote:
> On 8/28/07, Trond Myklebust <trond.myklebust@fys.uio.no> wrote:
> > 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 <trond.myklebust@fys.uio.no> 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
> >
>
> uptime of 3 hours and keyboard is still working fine
> I'll hopefully get to test this on the mini tomorrow for at least 3 hours also

got 45min on mini before I had to go elsewhere
the amd64 shutdown fine and has been up for more than 3 hours
I'd say the patch does it

> >
> > ---------- Forwarded message ----------
> > From: Trond Myklebust <Trond.Myklebust@netapp.com>
> > To:
> > Date: Mon, 27 Aug 2007 09:14:56 -0400
> > Subject: No Subject
> > 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 <Trond.Myklebust@netapp.com>
> > ---
> >
> > 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);
> > }
> >
> > /*
> >
> >
>