]> err.no Git - linux-2.6/commit
[PATCH] knfsd: Break the hard linkage from svc_expkey to svc_export
authorNeilBrown <neilb@suse.de>
Mon, 27 Mar 2006 09:15:00 +0000 (01:15 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Mon, 27 Mar 2006 16:44:41 +0000 (08:44 -0800)
commiteab7e2e647c348b418e8715ecaca0177e1b473c7
tree91aa453d6313eee89c8b19eea48699b1143264aa
parentefc36aa5608f5717338747e152c23f2cfdb14697
[PATCH] knfsd: Break the hard linkage from svc_expkey to svc_export

Current svc_expkey holds a pointer to the svc_export structure, so updates to
that structure have to be in-place, which is a wart on the whole cache
infrastruct.  So we break that linkage and just do a second lookup.

If this became a performance issue, it would be possible to put a direct link
back in which was only used conditionally.  i.e.  when an object is replaced
in the cache, we set a flag in the old object.  When dereferencing the link
from svc_expkey, if the flag is set, we drop the reference and do a fresh
lookup.

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
fs/nfsd/export.c
include/linux/nfsd/export.h