cd9660_vnops.c (29362) | cd9660_vnops.c (29653) |
---|---|
1/*- 2 * Copyright (c) 1994 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley 6 * by Pace Willisson (pace@blitz.com). The Rock Ridge Extension 7 * Support code is derived from software contributed to Berkeley 8 * by Atsushi Murai (amurai@spec.co.jp). --- 22 unchanged lines hidden (view full) --- 31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 32 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 36 * SUCH DAMAGE. 37 * 38 * @(#)cd9660_vnops.c 8.19 (Berkeley) 5/27/95 | 1/*- 2 * Copyright (c) 1994 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley 6 * by Pace Willisson (pace@blitz.com). The Rock Ridge Extension 7 * Support code is derived from software contributed to Berkeley 8 * by Atsushi Murai (amurai@spec.co.jp). --- 22 unchanged lines hidden (view full) --- 31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 32 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 36 * SUCH DAMAGE. 37 * 38 * @(#)cd9660_vnops.c 8.19 (Berkeley) 5/27/95 |
39 * $Id: cd9660_vnops.c,v 1.37 1997/08/26 07:32:32 phk Exp $ | 39 * $Id: cd9660_vnops.c,v 1.38 1997/09/14 02:57:43 peter Exp $ |
40 */ 41 42#include <sys/param.h> 43#include <sys/systm.h> 44#include <sys/namei.h> 45#include <sys/kernel.h> 46#include <sys/stat.h> 47#include <sys/sysctl.h> --- 729 unchanged lines hidden (view full) --- 777 778 /* 779 * Now get a buffer 780 * Abuse a namei buffer for now. 781 */ 782 if (uio->uio_segflg == UIO_SYSSPACE) 783 symname = uio->uio_iov->iov_base; 784 else | 40 */ 41 42#include <sys/param.h> 43#include <sys/systm.h> 44#include <sys/namei.h> 45#include <sys/kernel.h> 46#include <sys/stat.h> 47#include <sys/sysctl.h> --- 729 unchanged lines hidden (view full) --- 777 778 /* 779 * Now get a buffer 780 * Abuse a namei buffer for now. 781 */ 782 if (uio->uio_segflg == UIO_SYSSPACE) 783 symname = uio->uio_iov->iov_base; 784 else |
785 MALLOC(symname, char *, MAXPATHLEN, M_NAMEI, M_WAITOK); | 785 symname = zalloc(namei_zone); |
786 787 /* 788 * Ok, we just gathering a symbolic name in SL record. 789 */ 790 if (cd9660_rrip_getsymname(dirp, symname, &symlen, imp) == 0) { 791 if (uio->uio_segflg != UIO_SYSSPACE) | 786 787 /* 788 * Ok, we just gathering a symbolic name in SL record. 789 */ 790 if (cd9660_rrip_getsymname(dirp, symname, &symlen, imp) == 0) { 791 if (uio->uio_segflg != UIO_SYSSPACE) |
792 FREE(symname, M_NAMEI); | 792 zfree(namei_zone, symname); |
793 brelse(bp); 794 return (EINVAL); 795 } 796 /* 797 * Don't forget before you leave from home ;-) 798 */ 799 brelse(bp); 800 801 /* 802 * return with the symbolic name to caller's. 803 */ 804 if (uio->uio_segflg != UIO_SYSSPACE) { 805 error = uiomove(symname, symlen, uio); | 793 brelse(bp); 794 return (EINVAL); 795 } 796 /* 797 * Don't forget before you leave from home ;-) 798 */ 799 brelse(bp); 800 801 /* 802 * return with the symbolic name to caller's. 803 */ 804 if (uio->uio_segflg != UIO_SYSSPACE) { 805 error = uiomove(symname, symlen, uio); |
806 FREE(symname, M_NAMEI); | 806 zfree(namei_zone, symname); |
807 return (error); 808 } 809 uio->uio_resid -= symlen; 810 uio->uio_iov->iov_base += symlen; 811 uio->uio_iov->iov_len -= symlen; 812 return (0); 813} 814 --- 4 unchanged lines hidden (view full) --- 819static int 820cd9660_abortop(ap) 821 struct vop_abortop_args /* { 822 struct vnode *a_dvp; 823 struct componentname *a_cnp; 824 } */ *ap; 825{ 826 if ((ap->a_cnp->cn_flags & (HASBUF | SAVESTART)) == HASBUF) | 807 return (error); 808 } 809 uio->uio_resid -= symlen; 810 uio->uio_iov->iov_base += symlen; 811 uio->uio_iov->iov_len -= symlen; 812 return (0); 813} 814 --- 4 unchanged lines hidden (view full) --- 819static int 820cd9660_abortop(ap) 821 struct vop_abortop_args /* { 822 struct vnode *a_dvp; 823 struct componentname *a_cnp; 824 } */ *ap; 825{ 826 if ((ap->a_cnp->cn_flags & (HASBUF | SAVESTART)) == HASBUF) |
827 FREE(ap->a_cnp->cn_pnbuf, M_NAMEI); | 827 zfree(namei_zone, ap->a_cnp->cn_pnbuf); |
828 return (0); 829} 830 831/* 832 * Lock an inode. 833 */ 834static int 835cd9660_lock(ap) --- 348 unchanged lines hidden --- | 828 return (0); 829} 830 831/* 832 * Lock an inode. 833 */ 834static int 835cd9660_lock(ap) --- 348 unchanged lines hidden --- |