Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 22 Jul 2011 17:11:26 -0400 (EDT)
From:      Rick Macklem <rmacklem@uoguelph.ca>
To:        Jeremiah Lott <jlott@averesystems.com>
Cc:        freebsd-net@freebsd.org, kib@freebsd.org, John Baldwin <jhb@freebsd.org>
Subject:   Re: LOR with nfsclient "sillyrename"
Message-ID:  <1931983408.909766.1311369086133.JavaMail.root@erie.cs.uoguelph.ca>
In-Reply-To: <44626428-CF14-4B20-AB57-6D4E8F4678AE@averesystems.com>

next in thread | previous in thread | raw e-mail | index | archive | help
------=_Part_909765_1893841085.1311369086132
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Jeremiah Lott wrote:
> We're seeing nfsclient deadlocks with what looks like lock order
> reversal after removing a "silly rename". It is fairly rare, but we've
> seen it happen a few times. I included relevant back traces from an
> occurrence. From what I can see, nfs_inactive() is called with the
> vnode locked. If there is a silly-rename, it will call vrele() on its
> parent directory, which can potentially try to lock the parent
> directory. Since this is the opposite order of the lock acquisition in
> lookup, it can deadlock. This happened in a FreeBSD7 build, but I
> looked through freebsd head and didn't see any change that addressed
> this. Anyone seen this before?
> 
> Jeremiah Lott
> Avere Systems
> 
Please try the attached patch (which is also at):
  http://people.freebsd.org/~rmacklem/oldsilly.patch
  http://people.freebsd.org/~rmacklem/newsilly.patch
(for the old and new clients in -current, respectively)

- I think oldsilly.patch should apply to the 7.n kernel
  sources, although you might have to do the edit by hand?

The patch is based on what jhb@ posted, with changes as recommended
by kib@.

Please let me know how testing goes with it, rick
ps: Kostik, could you please review this, thanks.


------=_Part_909765_1893841085.1311369086132
Content-Type: text/x-patch; name=oldsilly.patch
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=oldsilly.patch

LS0tIG5mc2NsaWVudC9uZnNub2RlLmguc2F2CTIwMTEtMDctMjIgMTU6MzE6MTEuMDAwMDAwMDAw
IC0wNDAwCisrKyBuZnNjbGllbnQvbmZzbm9kZS5oCTIwMTEtMDctMjIgMTU6MzI6NTQuMDAwMDAw
MDAwIC0wNDAwCkBAIC0zNiw2ICszNiw3IEBACiAjaWZuZGVmIF9ORlNDTElFTlRfTkZTTk9ERV9I
XwogI2RlZmluZSBfTkZTQ0xJRU5UX05GU05PREVfSF8KIAorI2luY2x1ZGUgPHN5cy9fdGFzay5o
PgogI2lmICFkZWZpbmVkKF9ORlNDTElFTlRfTkZTX0hfKSAmJiAhZGVmaW5lZChfS0VSTkVMKQog
I2luY2x1ZGUgPG5mcy9uZnMuaD4KICNlbmRpZgpAQCAtNDUsNiArNDYsNyBAQAogICogY2FuIGJl
IHJlbW92ZWQgYnkgbmZzX2luYWN0aXZlKCkKICAqLwogc3RydWN0IHNpbGx5cmVuYW1lIHsKKwlz
dHJ1Y3QJdGFzayBzX3Rhc2s7CiAJc3RydWN0CXVjcmVkICpzX2NyZWQ7CiAJc3RydWN0CXZub2Rl
ICpzX2R2cDsKIAlpbnQJKCpzX3JlbW92ZWl0KShzdHJ1Y3Qgc2lsbHlyZW5hbWUgKnNwKTsKLS0t
IG5mc2NsaWVudC9uZnNfbm9kZS5jLnNhdgkyMDExLTA3LTIyIDE1OjMzOjA0LjAwMDAwMDAwMCAt
MDQwMAorKysgbmZzY2xpZW50L25mc19ub2RlLmMJMjAxMS0wNy0yMiAxNjozMTo0NS4wMDAwMDAw
MDAgLTA0MDAKQEAgLTQ3LDYgKzQ3LDcgQEAgX19GQlNESUQoIiRGcmVlQlNEOiBoZWFkL3N5cy9u
ZnNjbGllbnQvbgogI2luY2x1ZGUgPHN5cy9wcm9jLmg+CiAjaW5jbHVkZSA8c3lzL3NvY2tldC5o
PgogI2luY2x1ZGUgPHN5cy9zeXNjdGwuaD4KKyNpbmNsdWRlIDxzeXMvdGFza3F1ZXVlLmg+CiAj
aW5jbHVkZSA8c3lzL3Zub2RlLmg+CiAKICNpbmNsdWRlIDx2bS91bWEuaD4KQEAgLTU5LDYgKzYw
LDggQEAgX19GQlNESUQoIiRGcmVlQlNEOiBoZWFkL3N5cy9uZnNjbGllbnQvbgogCiBzdGF0aWMg
dW1hX3pvbmVfdCBuZnNub2RlX3pvbmU7CiAKK3N0YXRpYyB2b2lkCW5mc19mcmVlc2lsbHlyZW5h
bWUodm9pZCAqYXJnLCBfX3VudXNlZCBpbnQgcGVuZGluZyk7CisKICNkZWZpbmUgVFJVRQkxCiAj
ZGVmaW5lCUZBTFNFCTAKIApAQCAtMTg1LDYgKzE4OCwyMCBAQCBuZnNfbmdldChzdHJ1Y3QgbW91
bnQgKm1udHAsIG5mc2ZoX3QgKmZoCiAJcmV0dXJuICgwKTsKIH0KIAorLyoKKyAqIERvIHRoZSB2
cmVsZShzcC0+c19kdnApIGFzIGEgc2VwYXJhdGUgdGFzayBpbiBvcmRlciB0byBhdm9pZCBhCisg
KiBkZWFkbG9jayBiZWNhdXNlIG9mIGEgTE9SIHdoZW4gdnJlbGUoKSBsb2NrcyB0aGUgZGlyZWN0
b3J5IHZub2RlLgorICovCitzdGF0aWMgdm9pZAorbmZzX2ZyZWVzaWxseXJlbmFtZSh2b2lkICph
cmcsIF9fdW51c2VkIGludCBwZW5kaW5nKQoreworCXN0cnVjdCBzaWxseXJlbmFtZSAqc3A7CisK
KwlzcCA9IGFyZzsKKwl2cmVsZShzcC0+c19kdnApOworCWZyZWUoc3AsIE1fTkZTUkVRKTsKK30K
KwogaW50CiBuZnNfaW5hY3RpdmUoc3RydWN0IHZvcF9pbmFjdGl2ZV9hcmdzICphcCkKIHsKQEAg
LTIwNyw4ICsyMjQsOCBAQCBuZnNfaW5hY3RpdmUoc3RydWN0IHZvcF9pbmFjdGl2ZV9hcmdzICph
CiAJCSAqLwogCQkoc3AtPnNfcmVtb3ZlaXQpKHNwKTsKIAkJY3JmcmVlKHNwLT5zX2NyZWQpOwot
CQl2cmVsZShzcC0+c19kdnApOwotCQlmcmVlKChjYWRkcl90KXNwLCBNX05GU1JFUSk7CisJCVRB
U0tfSU5JVCgmc3AtPnNfdGFzaywgMCwgbmZzX2ZyZWVzaWxseXJlbmFtZSwgc3ApOworCQl0YXNr
cXVldWVfZW5xdWV1ZSh0YXNrcXVldWVfdGhyZWFkLCAmc3AtPnNfdGFzayk7CiAJCW10eF9sb2Nr
KCZucC0+bl9tdHgpOwogCX0KIAlucC0+bl9mbGFnICY9IE5NT0RJRklFRDsK
------=_Part_909765_1893841085.1311369086132
Content-Type: text/x-patch; name=newsilly.patch
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=newsilly.patch

LS0tIGZzL25mc2NsaWVudC9uZnNub2RlLmguc2F2MgkyMDExLTA3LTIyIDE1OjQyOjE0LjAwMDAw
MDAwMCAtMDQwMAorKysgZnMvbmZzY2xpZW50L25mc25vZGUuaAkyMDExLTA3LTIyIDE1OjQzOjI1
LjAwMDAwMDAwMCAtMDQwMApAQCAtMzUsMTEgKzM1LDE0IEBACiAjaWZuZGVmIF9ORlNDTElFTlRf
TkZTTk9ERV9IXwogI2RlZmluZQlfTkZTQ0xJRU5UX05GU05PREVfSF8KIAorI2luY2x1ZGUgPHN5
cy9fdGFzay5oPgorCiAvKgogICogU2lsbHkgcmVuYW1lIHN0cnVjdHVyZSB0aGF0IGhhbmdzIG9m
ZiB0aGUgbmZzbm9kZSB1bnRpbCB0aGUgbmFtZQogICogY2FuIGJlIHJlbW92ZWQgYnkgbmZzX2lu
YWN0aXZlKCkKICAqLwogc3RydWN0IHNpbGx5cmVuYW1lIHsKKwlzdHJ1Y3QJdGFzayBzX3Rhc2s7
CiAJc3RydWN0CXVjcmVkICpzX2NyZWQ7CiAJc3RydWN0CXZub2RlICpzX2R2cDsKIAlsb25nCXNf
bmFtbGVuOwotLS0gZnMvbmZzY2xpZW50L25mc19jbG5vZGUuYy5zYXYyCTIwMTEtMDctMjIgMTU6
NDM6NDAuMDAwMDAwMDAwIC0wNDAwCisrKyBmcy9uZnNjbGllbnQvbmZzX2Nsbm9kZS5jCTIwMTEt
MDctMjIgMTY6MzI6NTMuMDAwMDAwMDAwIC0wNDAwCkBAIC00Nyw2ICs0Nyw3IEBAIF9fRkJTRElE
KCIkRnJlZUJTRDogaGVhZC9zeXMvZnMvbmZzY2xpZW4KICNpbmNsdWRlIDxzeXMvcHJvYy5oPgog
I2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KICNpbmNsdWRlIDxzeXMvc3lzY3RsLmg+CisjaW5jbHVk
ZSA8c3lzL3Rhc2txdWV1ZS5oPgogI2luY2x1ZGUgPHN5cy92bm9kZS5oPgogCiAjaW5jbHVkZSA8
dm0vdW1hLmg+CkBAIC02NSw2ICs2Niw4IEBAIE1BTExPQ19ERUNMQVJFKE1fTkVXTkZTUkVRKTsK
IAogdW1hX3pvbmVfdCBuZXduZnNub2RlX3pvbmU7CiAKK3N0YXRpYyB2b2lkCW5mc19mcmVlc2ls
bHlyZW5hbWUodm9pZCAqYXJnLCBfX3VudXNlZCBpbnQgcGVuZGluZyk7CisKIHZvaWQKIG5jbF9u
aGluaXQodm9pZCkKIHsKQEAgLTE4Niw2ICsxODksMjAgQEAgbmNsX25nZXQoc3RydWN0IG1vdW50
ICptbnRwLCB1X2ludDhfdCAqZgogCXJldHVybiAoMCk7CiB9CiAKKy8qCisgKiBEbyB0aGUgdnJl
bGUoc3AtPnNfZHZwKSBhcyBhIHNlcGFyYXRlIHRhc2sgaW4gb3JkZXIgdG8gYXZvaWQgYQorICog
ZGVhZGxvY2sgYmVjYXVzZSBvZiBhIExPUiB3aGVuIHZyZWxlKCkgbG9ja3MgdGhlIGRpcmVjdG9y
eSB2bm9kZS4KKyAqLworc3RhdGljIHZvaWQKK25mc19mcmVlc2lsbHlyZW5hbWUodm9pZCAqYXJn
LCBfX3VudXNlZCBpbnQgcGVuZGluZykKK3sKKwlzdHJ1Y3Qgc2lsbHlyZW5hbWUgKnNwOworCisJ
c3AgPSBhcmc7CisJdnJlbGUoc3AtPnNfZHZwKTsKKwlmcmVlKHNwLCBNX05FV05GU1JFUSk7Cit9
CisKIGludAogbmNsX2luYWN0aXZlKHN0cnVjdCB2b3BfaW5hY3RpdmVfYXJncyAqYXApCiB7CkBA
IC0yMjAsOCArMjM3LDggQEAgbmNsX2luYWN0aXZlKHN0cnVjdCB2b3BfaW5hY3RpdmVfYXJncyAq
YQogCQkgKi8KIAkJbmNsX3JlbW92ZWl0KHNwLCB2cCk7CiAJCWNyZnJlZShzcC0+c19jcmVkKTsK
LQkJdnJlbGUoc3AtPnNfZHZwKTsKLQkJRlJFRSgoY2FkZHJfdClzcCwgTV9ORVdORlNSRVEpOwor
CQlUQVNLX0lOSVQoJnNwLT5zX3Rhc2ssIDAsIG5mc19mcmVlc2lsbHlyZW5hbWUsIHNwKTsKKwkJ
dGFza3F1ZXVlX2VucXVldWUodGFza3F1ZXVlX3RocmVhZCwgJnNwLT5zX3Rhc2spOwogCQltdHhf
bG9jaygmbnAtPm5fbXR4KTsKIAl9CiAJbnAtPm5fZmxhZyAmPSBOTU9ESUZJRUQ7Cg==
------=_Part_909765_1893841085.1311369086132--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1931983408.909766.1311369086133.JavaMail.root>