From: "J. Bruce Fields" <bfields@fieldses.org>
To: Neil Brown <neilb@suse.de>
Cc: nfs@lists.sourceforge.net
Subject: [PATCH] knfsd: eliminate unnecessary -ENOENT returns on export downcalls
Date: Thu, 26 Jul 2007 16:31:38 -0400 [thread overview]
Message-ID: <20070726203138.GH8125@fieldses.org> (raw)
In-Reply-To: <18088.7847.592861.408080@notabene.brown>
From: J. Bruce Fields <bfields@citi.umich.edu>
A succesful downcall with a negative result (which indicates that the
given filesystem is not exported to the given user) should not return an
error.
Currently mountd is depending on stdio to write these downcalls. With
some versions of libc this appears to cause subsequent writes to attempt
to write all accumulated data (for which writes previously failed) along
with any new data. This can prevent the kernel from seeing responses to
later downcalls. Symptoms will be that nfsd fails to respond to certain
requests.
Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
---
fs/nfsd/export.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
And here's the kernel fix.--b.
diff --git a/fs/nfsd/export.c b/fs/nfsd/export.c
index 2d295dd..cba899a 100644
--- a/fs/nfsd/export.c
+++ b/fs/nfsd/export.c
@@ -564,9 +564,10 @@ static int svc_export_parse(struct cache_detail *cd, char *mesg, int mlen)
/* flags */
err = get_int(&mesg, &an_int);
- if (err == -ENOENT)
+ if (err == -ENOENT) {
+ err = 0;
set_bit(CACHE_NEGATIVE, &exp.h.flags);
- else {
+ } else {
if (err || an_int < 0) goto out;
exp.ex_flags= an_int;
--
1.5.3.rc2
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
NFS maillist - NFS@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfs
next prev parent reply other threads:[~2007-07-26 20:31 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-25 22:37 stdio and nfs-utils J. Bruce Fields
2007-07-26 0:07 ` J. Bruce Fields
2007-07-26 2:59 ` Neil Brown
2007-07-26 3:17 ` J. Bruce Fields
2007-07-26 4:10 ` Neil Brown
2007-07-26 20:30 ` [PATCH] Use __fpurge to ensure single-line writes to cache files J. Bruce Fields
2007-07-26 20:31 ` J. Bruce Fields [this message]
2007-07-26 18:43 ` Exportfs not showing exported file systems (was RE: stdio and nfs-utils) Muntz, Daniel
2007-07-26 19:36 ` J. Bruce Fields
2007-07-26 19:48 ` Jeff Layton
2007-07-26 20:04 ` J. Bruce Fields
2007-07-26 20:42 ` Muntz, Daniel
2007-07-26 21:12 ` Jeff Layton
2007-07-26 21:16 ` J. Bruce Fields
2007-07-26 21:40 ` Muntz, Daniel
2007-07-27 14:40 ` Steve Dickson
[not found] <11855710801310-git-send-email->
[not found] ` <1185571080322-git-send-email->
[not found] ` <11855710802313-git-send-email->
2007-07-27 21:17 ` [PATCH] knfsd: set the response bitmask for NFS4_CREATE_EXCLUSIVE J. Bruce Fields
2007-07-27 21:18 ` [PATCH] knfsd: eliminate unnecessary -ENOENT returns on export downcalls J. Bruce Fields
2007-07-27 21:18 ` J. Bruce Fields
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=20070726203138.GH8125@fieldses.org \
--to=bfields@fieldses.org \
--cc=neilb@suse.de \
--cc=nfs@lists.sourceforge.net \
/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.