]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/miscfs/bindfs/bind_vnops.c
xnu-7195.101.1.tar.gz
[apple/xnu.git] / bsd / miscfs / bindfs / bind_vnops.c
index 2290bd8902ea20441ebcb613afa83b454805c8d5..726337c1e2b4b16e4332e1cb3d7b6570821eb309 100644 (file)
@@ -246,11 +246,10 @@ notdot:
                if (error == 0) {
                        *ap->a_vpp = vp;
                }
-       }
-
-       /* if we got lvp, drop the iocount from VNOP_LOOKUP */
-       if (lvp != NULL) {
-               vnode_put(lvp);
+               /* if we got lvp, drop the iocount from VNOP_LOOKUP */
+               if (lvp != NULL) {
+                       vnode_put(lvp);
+               }
        }
 
        return error;
@@ -334,7 +333,7 @@ bindfs_readdir(struct vnop_readdir_args * ap)
                struct dirent *dep;
                size_t bytesread;
                bufsize = 3 * MIN((user_size_t)uio_resid(uio), 87371u) / 8;
-               MALLOC(bufptr, void *, bufsize, M_TEMP, M_WAITOK);
+               bufptr = kheap_alloc(KHEAP_TEMP, bufsize, Z_WAITOK);
                if (bufptr == NULL) {
                        return ENOMEM;
                }
@@ -377,7 +376,7 @@ bindfs_readdir(struct vnop_readdir_args * ap)
                        uio_setoffset(uio, uio_offset(auio));
                }
                uio_free(auio);
-               FREE(bufptr, M_TEMP);
+               kheap_free(KHEAP_TEMP, bufptr, bufsize);
        } else {
                error = VNOP_READDIR(lvp, ap->a_uio, ap->a_flags, ap->a_eofflag, ap->a_numdirent, ap->a_context);
                vnode_put(lvp);