vfs_cache.c (51906) | vfs_cache.c (57199) |
---|---|
1/* 2 * Copyright (c) 1989, 1993, 1995 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * Poul-Henning Kamp of the FreeBSD Project. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 20 unchanged lines hidden (view full) --- 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 * SUCH DAMAGE. 35 * 36 * @(#)vfs_cache.c 8.5 (Berkeley) 3/22/95 | 1/* 2 * Copyright (c) 1989, 1993, 1995 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * Poul-Henning Kamp of the FreeBSD Project. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 20 unchanged lines hidden (view full) --- 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 * SUCH DAMAGE. 35 * 36 * @(#)vfs_cache.c 8.5 (Berkeley) 3/22/95 |
37 * $FreeBSD: head/sys/kern/vfs_cache.c 51906 1999-10-03 12:18:29Z phk $ | 37 * $FreeBSD: head/sys/kern/vfs_cache.c 57199 2000-02-14 06:09:01Z peter $ |
38 */ 39 40#include <sys/param.h> 41#include <sys/systm.h> 42#include <sys/kernel.h> 43#include <sys/sysctl.h> 44#include <sys/mount.h> 45#include <sys/vnode.h> --- 484 unchanged lines hidden (view full) --- 530 uap->buflen = MAXPATHLEN; 531 buf = bp = malloc(uap->buflen, M_TEMP, M_WAITOK); 532 bp += uap->buflen - 1; 533 *bp = '\0'; 534 fdp = p->p_fd; 535 slash_prefixed = 0; 536 for (vp = fdp->fd_cdir; vp != fdp->fd_rdir && vp != rootvnode;) { 537 if (vp->v_flag & VROOT) { | 38 */ 39 40#include <sys/param.h> 41#include <sys/systm.h> 42#include <sys/kernel.h> 43#include <sys/sysctl.h> 44#include <sys/mount.h> 45#include <sys/vnode.h> --- 484 unchanged lines hidden (view full) --- 530 uap->buflen = MAXPATHLEN; 531 buf = bp = malloc(uap->buflen, M_TEMP, M_WAITOK); 532 bp += uap->buflen - 1; 533 *bp = '\0'; 534 fdp = p->p_fd; 535 slash_prefixed = 0; 536 for (vp = fdp->fd_cdir; vp != fdp->fd_rdir && vp != rootvnode;) { 537 if (vp->v_flag & VROOT) { |
538 if (vp->v_mount == NULL) /* forced unmount */ 539 return (EBADF); |
|
538 vp = vp->v_mount->mnt_vnodecovered; 539 continue; 540 } 541 if (vp->v_dd->v_id != vp->v_ddid) { 542 numcwdfail1++; 543 free(buf, M_TEMP); 544 return (ENOTDIR); 545 } --- 42 unchanged lines hidden --- | 540 vp = vp->v_mount->mnt_vnodecovered; 541 continue; 542 } 543 if (vp->v_dd->v_id != vp->v_ddid) { 544 numcwdfail1++; 545 free(buf, M_TEMP); 546 return (ENOTDIR); 547 } --- 42 unchanged lines hidden --- |