From: Adrian Bunk <bunk@stusta.de>
To: Trond Myklebust <trond.myklebust@fys.uio.no>
Cc: Fermin Molina <fermin@asic.udl.es>, linux-kernel@vger.kernel.org
Subject: Re: kernel BUG at fs/locks.c:1932!
Date: Sat, 25 Feb 2006 16:35:25 +0100 [thread overview]
Message-ID: <20060225153525.GT3674@stusta.de> (raw)
In-Reply-To: <1140373675.7883.45.camel@lade.trondhjem.org>
On Sun, Feb 19, 2006 at 01:27:55PM -0500, Trond Myklebust wrote:
> On Fri, 2006-02-17 at 16:15 +0100, Fermin Molina wrote:
> > Hi,
> >
> > I run samba sharing NFS mounted shares from another machine. I'm getting
> > the following bugs in console (and in logs), when I stop samba (but not
> > always, I think it depends of stalled locks):
> >
> > lockd: unexpected unlock status: 7
> > lockd: unexpected unlock status: 7
> > lockd: unexpected unlock status: 7
> > ------------[ cut here ]------------
>
> Hmm... The problem here is that the server is returning an unexpected
> error: it is normally supposed to return "lock granted" or "grace
> error", but is actually returning "stale filehandle".
>
> Anyhow, the client should be able to deal with this without Oopsing.
This seems to be a patch that should go into 2.6.16?
> The attached patch ought to fix that. Please could you give it a try?
>
> Cheers,
> Trond
> Author: Trond Myklebust <Trond.Myklebust@netapp.com>
> NLM: Ensure we do not Oops in the case of an unlock
>
> In theory, NLM specs assure us that the server will only reply LCK_GRANTED
> or LCK_DENIED_GRACE_PERIOD to our NLM_UNLOCK request.
>
> In practice, we should not assume this to be the case, and the code will
> currently Oops if we do.
>
> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
> ---
>
> fs/lockd/clntproc.c | 8 +++++++-
> 1 files changed, 7 insertions(+), 1 deletions(-)
>
> diff --git a/fs/lockd/clntproc.c b/fs/lockd/clntproc.c
> index 7e89655..da76592 100644
> --- a/fs/lockd/clntproc.c
> +++ b/fs/lockd/clntproc.c
> @@ -644,10 +644,16 @@ nlmclnt_unlock(struct nlm_rqst *req, str
>
> status = nlmclnt_call(req, NLMPROC_UNLOCK);
> nlmclnt_release_lockargs(req);
> + /*
> + * Note: the server is supposed to either grant us the unlock
> + * request, or to deny it with NLM_LCK_DENIED_GRACE_PERIOD. In either
> + * case, we want to unlock.
> + */
> + do_vfs_lock(fl);
> +
> if (status < 0)
> return status;
>
> - do_vfs_lock(fl);
> if (resp->status == NLM_LCK_GRANTED)
> return 0;
>
cu
Adrian
--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed
next prev parent reply other threads:[~2006-02-25 15:35 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-02-17 15:15 kernel BUG at fs/locks.c:1932! Fermin Molina
2006-02-19 18:27 ` Trond Myklebust
2006-02-25 15:35 ` Adrian Bunk [this message]
2006-02-25 15:46 ` Jesper Juhl
2006-02-25 16:04 ` Trond Myklebust
2006-02-27 22:56 ` Fermin Molina
-- strict thread matches above, loose matches on Subject: below --
2005-12-21 2:00 Kenny Simpson
2005-12-21 2:54 ` Trond Myklebust
2005-12-21 3:20 ` Kenny Simpson
2005-12-22 20:35 ` Kenny Simpson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060225153525.GT3674@stusta.de \
--to=bunk@stusta.de \
--cc=fermin@asic.udl.es \
--cc=linux-kernel@vger.kernel.org \
--cc=trond.myklebust@fys.uio.no \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.