Deleted Added
full compact
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 ---