ext2_lookup.c (144299) | ext2_lookup.c (145006) |
---|---|
1/*- 2 * modified for Lites 1.1 3 * 4 * Aug 1995, Godmar Back (gback@cs.utah.edu) 5 * University of Utah, Department of Computer Science 6 */ 7/*- 8 * Copyright (c) 1989, 1993 --- 24 unchanged lines hidden (view full) --- 33 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 34 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 35 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 36 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 37 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 38 * SUCH DAMAGE. 39 * 40 * @(#)ufs_lookup.c 8.6 (Berkeley) 4/1/94 | 1/*- 2 * modified for Lites 1.1 3 * 4 * Aug 1995, Godmar Back (gback@cs.utah.edu) 5 * University of Utah, Department of Computer Science 6 */ 7/*- 8 * Copyright (c) 1989, 1993 --- 24 unchanged lines hidden (view full) --- 33 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 34 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 35 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 36 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 37 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 38 * SUCH DAMAGE. 39 * 40 * @(#)ufs_lookup.c 8.6 (Berkeley) 4/1/94 |
41 * $FreeBSD: head/sys/gnu/fs/ext2fs/ext2_lookup.c 144299 2005-03-29 13:09:42Z jeff $ | 41 * $FreeBSD: head/sys/gnu/fs/ext2fs/ext2_lookup.c 145006 2005-04-13 10:59:09Z jeff $ |
42 */ 43 44#include <sys/param.h> 45#include <sys/systm.h> 46#include <sys/namei.h> 47#include <sys/bio.h> 48#include <sys/buf.h> 49#include <sys/mount.h> --- 601 unchanged lines hidden (view full) --- 651 * implementing a sophisticated deadlock detection algorithm. 652 * Note also that this simple deadlock detection scheme will not 653 * work if the file system has any hard links other than ".." 654 * that point backwards in the directory structure. 655 */ 656 pdp = vdp; 657 if (flags & ISDOTDOT) { 658 VOP_UNLOCK(pdp, 0, td); /* race to get the inode */ | 42 */ 43 44#include <sys/param.h> 45#include <sys/systm.h> 46#include <sys/namei.h> 47#include <sys/bio.h> 48#include <sys/buf.h> 49#include <sys/mount.h> --- 601 unchanged lines hidden (view full) --- 651 * implementing a sophisticated deadlock detection algorithm. 652 * Note also that this simple deadlock detection scheme will not 653 * work if the file system has any hard links other than ".." 654 * that point backwards in the directory structure. 655 */ 656 pdp = vdp; 657 if (flags & ISDOTDOT) { 658 VOP_UNLOCK(pdp, 0, td); /* race to get the inode */ |
659 if ((error = VFS_VGET(vdp->v_mount, dp->i_ino, LK_EXCLUSIVE, 660 &tdp)) != 0) { 661 vn_lock(pdp, LK_EXCLUSIVE | LK_RETRY, td); | 659 error = VFS_VGET(vdp->v_mount, dp->i_ino, LK_EXCLUSIVE, &tdp); 660 vn_lock(pdp, LK_EXCLUSIVE | LK_RETRY, td); 661 if (error != 0) |
662 return (error); | 662 return (error); |
663 } | |
664 *vpp = tdp; 665 } else if (dp->i_number == dp->i_ino) { 666 VREF(vdp); /* we want ourself, ie "." */ 667 *vpp = vdp; 668 } else { 669 if ((error = VFS_VGET(vdp->v_mount, dp->i_ino, LK_EXCLUSIVE, 670 &tdp)) != 0) 671 return (error); --- 410 unchanged lines hidden --- | 663 *vpp = tdp; 664 } else if (dp->i_number == dp->i_ino) { 665 VREF(vdp); /* we want ourself, ie "." */ 666 *vpp = vdp; 667 } else { 668 if ((error = VFS_VGET(vdp->v_mount, dp->i_ino, LK_EXCLUSIVE, 669 &tdp)) != 0) 670 return (error); --- 410 unchanged lines hidden --- |