From owner-freebsd-fs@FreeBSD.ORG Sun Jun 21 14:30:44 2015 Return-Path: Delivered-To: freebsd-fs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 826EEA1E for ; Sun, 21 Jun 2015 14:30:44 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from esa-annu.net.uoguelph.ca (esa-annu.mail.uoguelph.ca [131.104.91.36]) by mx1.freebsd.org (Postfix) with ESMTP id ED166F48 for ; Sun, 21 Jun 2015 14:30:43 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2D5BABUyYZV/95baINbg2RfBoMYvEkKhS5KAoFYEQEBAQEBAQGBCoQiAQEBAwEBAQEgBCcgCwUWGBEZAgQlAQkmBggHBAEcBIgGCA2xJ5V1AQEBAQEBAQMBAQEBAQEBAQEZi0WENAEBBRcZGweCaIFDBYwOh2+CJIIyhC+EA0GDTIgoikImY4FZgVkiMQeBBTqBAgEBAQ X-IronPort-AV: E=Sophos;i="5.13,654,1427774400"; d="scan'208";a="219649125" Received: from muskoka.cs.uoguelph.ca (HELO zcs3.mail.uoguelph.ca) ([131.104.91.222]) by esa-annu.net.uoguelph.ca with ESMTP; 21 Jun 2015 10:30:35 -0400 Received: from zcs3.mail.uoguelph.ca (localhost.localdomain [127.0.0.1]) by zcs3.mail.uoguelph.ca (Postfix) with ESMTP id ED97AB3F84; Sun, 21 Jun 2015 10:30:34 -0400 (EDT) Date: Sun, 21 Jun 2015 10:30:34 -0400 (EDT) From: Rick Macklem To: "alex.burlyga.ietf alex.burlyga.ietf" Cc: freebsd-fs@freebsd.org Message-ID: <1969046464.61534041.1434897034960.JavaMail.root@uoguelph.ca> In-Reply-To: Subject: Re: [nfs][client] - Question about handling of the NFS3_EEXIST error in SYMLINK rpc MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_61534039_1057484672.1434897034958" X-Originating-IP: [172.17.95.10] X-Mailer: Zimbra 7.2.6_GA_2926 (ZimbraWebClient - FF3.0 (Win)/7.2.6_GA_2926) X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Jun 2015 14:30:44 -0000 ------=_Part_61534039_1057484672.1434897034958 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Alex Burlyga wrote: > Hi, > > NFS client code in nfsrpc_symlink() masks server returned NFS3_EEXIST > error > code > by returning 0 to the upper layers. I'm assuming this was an attempt > to > work around > some server's broken replay cache out there, however, it breaks a > more > common > case where server is returning EEXIST for legitimate reason and > application > is expecting this error code and equipped to deal with it. > > To fix it I see three ways of doing this: > * Remove offending code > * Make it optional, sysctl? > * On NFS3_EEXIST send READLINK rpc to make sure symlink content is > right > > Which of the ways will maximize the chances of getting this fix > upstream? > I've attached a patch for testing/review that does essentially #2. It has no effect on trivial tests, since the syscall does a Lookup before trying to create the symlink and fails with EEXIST. Do you have a case where competing clients are trying to create the symlink or something like that, which runs into this? Please test the attached patch, since I don't know how to do that, rick > One more point, old client circa FreeBSD 7.0 does not exhibit this > problem. > > Alex > _______________________________________________ > freebsd-fs@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-fs > To unsubscribe, send any mail to "freebsd-fs-unsubscribe@freebsd.org" > ------=_Part_61534039_1057484672.1434897034958 Content-Type: text/x-patch; name=eexist.patch Content-Disposition: attachment; filename=eexist.patch Content-Transfer-Encoding: base64 LS0tIGZzL25mc2NsaWVudC9uZnNfY2xycGNvcHMuYy5zYXYyCTIwMTUtMDYtMjEgMDk6Mjc6Mzgu NjQwOTQ3MDAwIC0wNDAwCisrKyBmcy9uZnNjbGllbnQvbmZzX2NscnBjb3BzLmMJMjAxNS0wNi0y MSAwOTo1Mzo0Mi43MjMwODUwMDAgLTA0MDAKQEAgLTQ2LDYgKzQ2LDEzIEBAIF9fRkJTRElEKCIk RnJlZUJTRDogaGVhZC9zeXMvZnMvbmZzY2xpZW4KICNpbmNsdWRlICJvcHRfaW5ldDYuaCIKIAog I2luY2x1ZGUgPGZzL25mcy9uZnNwb3J0Lmg+CisjaW5jbHVkZSA8c3lzL3N5c2N0bC5oPgorCitT WVNDVExfREVDTChfdmZzX25mcyk7CisKK3N0YXRpYyBpbnQJbmZzaWdub3JlX2VleGlzdCA9IDA7 CitTWVNDVExfSU5UKF92ZnNfbmZzLCBPSURfQVVUTywgaWdub3JlX2VleGlzdCwgQ1RMRkxBR19S VywKKyAgICAmbmZzaWdub3JlX2VleGlzdCwgMCwgIk5GUyBpZ25vcmUgRUVYSVNUIHJlcGxpZXMg Zm9yIG1rZGlyL3N5bWxpbmsiKTsKIAogLyoKICAqIEdsb2JhbCB2YXJpYWJsZXMKQEAgLTI1MzAs OCArMjUzNywxMiBAQCBuZnNycGNfc3ltbGluayh2bm9kZV90IGR2cCwgY2hhciAqbmFtZSwgCiAJ bWJ1Zl9mcmVlbShuZC0+bmRfbXJlcCk7CiAJLyoKIAkgKiBLbHVkZ2U6IE1hcCBFRVhJU1QgPT4g MCBhc3N1bWluZyB0aGF0IGl0IGlzIGEgcmVwbHkgdG8gYSByZXRyeS4KKwkgKiBPbmx5IGRvIHRo aXMgaWYgdmZzLm5mcy5pZ25vcmVfZWV4aXN0IGlzIHNldC4KKwkgKiBOZXZlciBkbyB0aGlzIGZv ciBORlN2NC4xIG9yIGxhdGVyIG1pbm9yIHZlcnNpb25zLCBzaW5jZSBzZXNzaW9ucworCSAqIHNo b3VsZCBndWFyYW50ZWUgImV4YWN0bHkgb25jZSIgUlBDIHNlbWFudGljcy4KIAkgKi8KLQlpZiAo ZXJyb3IgPT0gRUVYSVNUKQorCWlmIChlcnJvciA9PSBFRVhJU1QgJiYgbmZzaWdub3JlX2VleGlz dCAhPSAwICYmICghTkZTSEFTTkZTVjQobm1wKSB8fAorCSAgICBubXAtPm5tX21pbm9ydmVycyA9 PSAwKSkKIAkJZXJyb3IgPSAwOwogCXJldHVybiAoZXJyb3IpOwogfQpAQCAtMjU1MCwxMCArMjU2 MSwxMiBAQCBuZnNycGNfbWtkaXIodm5vZGVfdCBkdnAsIGNoYXIgKm5hbWUsIGluCiAJbmZzYXR0 cmJpdF90IGF0dHJiaXRzOwogCWludCBlcnJvciA9IDA7CiAJc3RydWN0IG5mc2ZoICpmaHA7CisJ c3RydWN0IG5mc21vdW50ICpubXA7CiAKIAkqbmZocHAgPSBOVUxMOwogCSphdHRyZmxhZ3AgPSAw OwogCSpkYXR0cmZsYWdwID0gMDsKKwlubXAgPSBWRlNUT05GUyh2bm9kZV9tb3VudChkdnApKTsK IAlmaHAgPSBWVE9ORlMoZHZwKS0+bl9maHA7CiAJaWYgKG5hbWVsZW4gPiBORlNfTUFYTkFNTEVO KQogCQlyZXR1cm4gKEVOQU1FVE9PTE9ORyk7CkBAIC0yNjA1LDkgKzI2MTgsMTMgQEAgbmZzcnBj X21rZGlyKHZub2RlX3QgZHZwLCBjaGFyICpuYW1lLCBpbgogbmZzbW91dDoKIAltYnVmX2ZyZWVt KG5kLT5uZF9tcmVwKTsKIAkvKgotCSAqIEtsdWRnZTogTWFwIEVFWElTVCA9PiAwIGFzc3VtaW5n IHRoYXQgeW91IGhhdmUgYSByZXBseSB0byBhIHJldHJ5LgorCSAqIEtsdWRnZTogTWFwIEVFWElT VCA9PiAwIGFzc3VtaW5nIHRoYXQgaXQgaXMgYSByZXBseSB0byBhIHJldHJ5LgorCSAqIE9ubHkg ZG8gdGhpcyBpZiB2ZnMubmZzLmlnbm9yZV9lZXhpc3QgaXMgc2V0LgorCSAqIE5ldmVyIGRvIHRo aXMgZm9yIE5GU3Y0LjEgb3IgbGF0ZXIgbWlub3IgdmVyc2lvbnMsIHNpbmNlIHNlc3Npb25zCisJ ICogc2hvdWxkIGd1YXJhbnRlZSAiZXhhY3RseSBvbmNlIiBSUEMgc2VtYW50aWNzLgogCSAqLwot CWlmIChlcnJvciA9PSBFRVhJU1QpCisJaWYgKGVycm9yID09IEVFWElTVCAmJiBuZnNpZ25vcmVf ZWV4aXN0ICE9IDAgJiYgKCFORlNIQVNORlNWNChubXApIHx8CisJICAgIG5tcC0+bm1fbWlub3J2 ZXJzID09IDApKQogCQllcnJvciA9IDA7CiAJcmV0dXJuIChlcnJvcik7CiB9Cg== ------=_Part_61534039_1057484672.1434897034958--