The patch titled knfsd: eliminate unnecessary -ENOENT returns on export downcalls has been added to the -mm tree. Its filename is knfsd-eliminate-unnecessary-enoent-returns-on-export-downcalls.patch *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: knfsd: eliminate unnecessary -ENOENT returns on export downcalls From: J. Bruce Fields <bfields@xxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxx> Cc: Neil Brown <neilb@xxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- fs/nfsd/export.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff -puN fs/nfsd/export.c~knfsd-eliminate-unnecessary-enoent-returns-on-export-downcalls fs/nfsd/export.c --- a/fs/nfsd/export.c~knfsd-eliminate-unnecessary-enoent-returns-on-export-downcalls +++ a/fs/nfsd/export.c @@ -564,9 +564,10 @@ static int svc_export_parse(struct cache /* 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; _ Patches currently in -mm which might be from bfields@xxxxxxxxxxxxxx are origin.patch knfsd-set-the-response-bitmask-for-nfs4_create_exclusive.patch nfsd4-idmap-upcalls-should-use-unsigned-uid-and-gid.patch knfsd-eliminate-unnecessary-enoent-returns-on-export-downcalls.patch locks-kill-redundant-local-variable.patch vfs-fix-a-race-in-lease-breaking-during-truncate.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html