SCCS-vsn: sys/ufs/ffs/ufs_lookup.c 7.8
SCCS-vsn: sys/ufs/ufs/ufs_lookup.c 7.8
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * @(#)ufs_lookup.c 7.7 (Berkeley) %G%
+ * @(#)ufs_lookup.c 7.8 (Berkeley) %G%
ILOCK(pdp);
return (error);
}
ILOCK(pdp);
return (error);
}
+ if (lockparent && *ndp->ni_next == '\0')
+ ILOCK(pdp);
ndp->ni_vp = ITOV(tdp);
} else if (dp->i_number == ndp->ni_dent.d_ino) {
vdp = ITOV(dp);
ndp->ni_vp = ITOV(tdp);
} else if (dp->i_number == ndp->ni_dent.d_ino) {
vdp = ITOV(dp);
} else {
if (error = iget(dp, ndp->ni_dent.d_ino, &tdp))
return (error);
} else {
if (error = iget(dp, ndp->ni_dent.d_ino, &tdp))
return (error);
+ if (!lockparent || *ndp->ni_next != '\0')
+ IUNLOCK(pdp);
ndp->ni_vp = ITOV(tdp);
}
ndp->ni_vp = ITOV(tdp);
}
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * @(#)ufs_lookup.c 7.7 (Berkeley) %G%
+ * @(#)ufs_lookup.c 7.8 (Berkeley) %G%
ILOCK(pdp);
return (error);
}
ILOCK(pdp);
return (error);
}
+ if (lockparent && *ndp->ni_next == '\0')
+ ILOCK(pdp);
ndp->ni_vp = ITOV(tdp);
} else if (dp->i_number == ndp->ni_dent.d_ino) {
vdp = ITOV(dp);
ndp->ni_vp = ITOV(tdp);
} else if (dp->i_number == ndp->ni_dent.d_ino) {
vdp = ITOV(dp);
} else {
if (error = iget(dp, ndp->ni_dent.d_ino, &tdp))
return (error);
} else {
if (error = iget(dp, ndp->ni_dent.d_ino, &tdp))
return (error);
+ if (!lockparent || *ndp->ni_next != '\0')
+ IUNLOCK(pdp);
ndp->ni_vp = ITOV(tdp);
}
ndp->ni_vp = ITOV(tdp);
}