From 3a1cf7a4502e6f37113536ad38530f5207c77866 Mon Sep 17 00:00:00 2001 From: marcus Date: Fri, 5 Jun 2009 16:44:42 +0000 Subject: Unlock the cache lock before returning when we run out of buffer space trying to fill in the full path name. Reported by: David Naylor Approved by: kib --- sys/kern/vfs_cache.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'sys/kern/vfs_cache.c') diff --git a/sys/kern/vfs_cache.c b/sys/kern/vfs_cache.c index 45ffe0d..0bd7975 100644 --- a/sys/kern/vfs_cache.c +++ b/sys/kern/vfs_cache.c @@ -1140,8 +1140,10 @@ vn_fullpath1(struct thread *td, struct vnode *vp, struct vnode *rdir, error = vn_vptocnp_locked(&vp, buf, &buflen); if (error) return (error); - if (buflen == 0) + if (buflen == 0) { + CACHE_RUNLOCK(); return (ENOMEM); + } buf[--buflen] = '/'; slash_prefixed = 1; } @@ -1169,6 +1171,7 @@ vn_fullpath1(struct thread *td, struct vnode *vp, struct vnode *rdir, if (error) break; if (buflen == 0) { + CACHE_RUNLOCK(); error = ENOMEM; SDT_PROBE(vfs, namecache, fullpath, return, error, startvp, NULL, 0, 0); -- cgit v1.1