On Fri, Mar 14, 2008 at 08:53:03PM +0100, Lukas Hejtmanek wrote:Right before the first nfsd_setuser_and_check_port()? I don't believe so. The way it works is: the rqst_exp_find() calls bump the reference count on the export they return to us, as expected; so if we bail out after that line 185, the exp_put() at "out:" drops that reference, as it should, making fh_verify a no-op with respect to the reference count. The only time we need a new reference is when we store that pointer in the filehandle, around line 233, as that's what creates a long-lived reference that will outlive the function. The other cache_get() (in the "just rechecking" case) is there just to balance out the final exp_put() so every code path can share the same code at "out:". I find that a little contorted. So I'll go ahead and submit this small patch to 2.6.25 and stable now (I have since managed to reproduce what I believe is your bug, though my symptoms were a little different), and then submit to 2.6.26 some cleanup which makes this more understandable, and brings fh_verify() a little closer to the kernel's aesthetic of small, minimally-indented functions. That said, I'd definitely still appreciate your confirmation that this fixes your bug, so thanks for offering to retest that Monday. --b. --
| Andrew Morton | Re: Linux 2.6.21-rc4 |
| Andrew Morton | echo mem > /sys/power/state |
| Adrian Bunk | Re: 2.6.23-rc9 boot failure (megaraid?) |
| Florian Schmidt | blacklist kernel boot option |
git: | |
| Nicolas Pitre | Re: [PATCH] gc: call "prune --expire 2.weeks.ago" |
| Linus Torvalds | Re: git versus CVS (versus bk) |
| Ping Yin | [RFC] git reset --recover |
| Russ Dill | git-svn+cygwin failed fetch |
| GVG GVG | ssh_exchange_identification: Connection closed by remote host |
| Karel Kulhavy | lookup option in /etc/resolv.conf ignored |
| Alexey Suslikov | OT: OpenBSD on Asus eeePC |
| ACP | maybe OT 3 year anniversay of Chuck Yerkes death |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Karsten Keil | Linux IPv6 DAD not full conform to RFC 4862 ? |
| Arkadiusz Miskiewicz | htb and UDP packages bigger than 1500 |
| Ilpo Järvinen | Re: [PATCH] INET : removes per bucket rwlock in tcp/dccp ehash table |
