Commit:     4a4b88317aa02c82e66e37debb764d4ff3eedd70
Parent:     0a725fc4d3bfc4734164863d6c50208b109ca5c7
Author:     J. Bruce Fields <[EMAIL PROTECTED]>
AuthorDate: Tue Jul 31 00:37:53 2007 -0700
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Tue Jul 31 15:39:38 2007 -0700

    knfsd: eliminate unnecessary -ENOENT returns on export downcalls
    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" <[EMAIL PROTECTED]>
    Cc: Neil Brown <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
 fs/nfsd/export.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

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;
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to