msdosfs_lookup.c (144298) | msdosfs_lookup.c (145006) |
---|---|
1/* $FreeBSD: head/sys/fs/msdosfs/msdosfs_lookup.c 144298 2005-03-29 13:04:00Z jeff $ */ | 1/* $FreeBSD: head/sys/fs/msdosfs/msdosfs_lookup.c 145006 2005-04-13 10:59:09Z jeff $ */ |
2/* $NetBSD: msdosfs_lookup.c,v 1.37 1997/11/17 15:36:54 ws Exp $ */ 3 4/*- 5 * Copyright (C) 1994, 1995, 1997 Wolfgang Solfrank. 6 * Copyright (C) 1994, 1995, 1997 TooLs GmbH. 7 * All rights reserved. 8 * Original code by Paul Popelka (paulp@uts.amdahl.com) (see below). 9 * --- 501 unchanged lines hidden (view full) --- 511 * Note also that this simple deadlock detection scheme will not 512 * work if the filesystem has any hard links other than ".." 513 * that point backwards in the directory structure. 514 */ 515 pdp = vdp; 516 if (flags & ISDOTDOT) { 517 VOP_UNLOCK(pdp, 0, td); 518 error = deget(pmp, cluster, blkoff, &tdp); | 2/* $NetBSD: msdosfs_lookup.c,v 1.37 1997/11/17 15:36:54 ws Exp $ */ 3 4/*- 5 * Copyright (C) 1994, 1995, 1997 Wolfgang Solfrank. 6 * Copyright (C) 1994, 1995, 1997 TooLs GmbH. 7 * All rights reserved. 8 * Original code by Paul Popelka (paulp@uts.amdahl.com) (see below). 9 * --- 501 unchanged lines hidden (view full) --- 511 * Note also that this simple deadlock detection scheme will not 512 * work if the filesystem has any hard links other than ".." 513 * that point backwards in the directory structure. 514 */ 515 pdp = vdp; 516 if (flags & ISDOTDOT) { 517 VOP_UNLOCK(pdp, 0, td); 518 error = deget(pmp, cluster, blkoff, &tdp); |
519 if (error) { 520 vn_lock(pdp, LK_EXCLUSIVE | LK_RETRY, td); | 519 vn_lock(pdp, LK_EXCLUSIVE | LK_RETRY, td); 520 if (error) |
521 return (error); | 521 return (error); |
522 } | |
523 *vpp = DETOV(tdp); 524 } else if (dp->de_StartCluster == scn && isadir) { 525 VREF(vdp); /* we want ourself, ie "." */ 526 *vpp = vdp; 527 } else { 528 if ((error = deget(pmp, cluster, blkoff, &tdp)) != 0) 529 return (error); 530 *vpp = DETOV(tdp); --- 547 unchanged lines hidden --- | 522 *vpp = DETOV(tdp); 523 } else if (dp->de_StartCluster == scn && isadir) { 524 VREF(vdp); /* we want ourself, ie "." */ 525 *vpp = vdp; 526 } else { 527 if ((error = deget(pmp, cluster, blkoff, &tdp)) != 0) 528 return (error); 529 *vpp = DETOV(tdp); --- 547 unchanged lines hidden --- |