Date: Wed, 08 Aug 2012 21:05:07 +0000 From: oleksandr@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r240206 - soc2012/oleksandr/udf-head/sys/fs/udf2 Message-ID: <20120808210507.EAA18106566C@hub.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: oleksandr Date: Wed Aug 8 21:05:07 2012 New Revision: 240206 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=240206 Log: Correct udf_readdir and add some KASSERTs Modified: soc2012/oleksandr/udf-head/sys/fs/udf2/udf_subr.c soc2012/oleksandr/udf-head/sys/fs/udf2/udf_vnops.c Modified: soc2012/oleksandr/udf-head/sys/fs/udf2/udf_subr.c ============================================================================== --- soc2012/oleksandr/udf-head/sys/fs/udf2/udf_subr.c Wed Aug 8 20:21:33 2012 (r240205) +++ soc2012/oleksandr/udf-head/sys/fs/udf2/udf_subr.c Wed Aug 8 21:05:07 2012 (r240206) @@ -964,7 +964,7 @@ ump->packet_size = MAXPHYS / ump->discinfo.sector_size; ump->packet_size = MIN(ump->packet_size, 64); } - /*KASSERT(ump->packet_size >= 1); */ + KASSERT(ump->packet_size >= 1, ("udf_read_anchors: packet size is less than one")); /* read anchors start+256, start+512, end-256, end */ positions[0] = track_start+256; @@ -2133,7 +2133,7 @@ #if 0 /* - * Select our sheduler + * Select our scheduler */ ump->strategy = &udf_strat_rmw; if (n_virt || (ump->discinfo.mmc_cur & MMC_CAP_PSEUDOOVERWRITE)) @@ -3180,7 +3180,8 @@ */ ump->sparable_packet_size = le16toh(pms->packet_len); - /*KASSERT(ump->sparable_packet_size >= ump->packet_size); */ /* XXX */ + KASSERT(ump->sparable_packet_size >= ump->packet_size, + ("udf_read_sparables: sparable packet size is less than packet size")); for (spar = 0; spar < pms->n_st; spar++) { lb_num = pms->st_loc[spar]; Modified: soc2012/oleksandr/udf-head/sys/fs/udf2/udf_vnops.c ============================================================================== --- soc2012/oleksandr/udf-head/sys/fs/udf2/udf_vnops.c Wed Aug 8 20:21:33 2012 (r240205) +++ soc2012/oleksandr/udf-head/sys/fs/udf2/udf_vnops.c Wed Aug 8 21:05:07 2012 (r240206) @@ -231,7 +231,7 @@ #endif KASSERT(udf_node, ("udf_read: udf_node is null")); - KASSERT(udf_noed->fe || udf_node->efe, ("udf_read: Extended File Entry or File Entry is null")); + KASSERT(udf_node->fe || udf_node->efe, ("udf_read: Extended File Entry or File Entry is null")); /* get file/directory filesize */ if (udf_node->fe) @@ -275,14 +275,8 @@ /* --------------------------------------------------------------------- */ #if 0 int -udf_write(void *v) +udf_write(struct vop_write_args *ap) { - struct vop_write_args /* { - struct vnode *a_vp; - struct uio *a_uio; - int a_ioflag; - kauth_cred_t a_cred; - } */ *ap = v; struct vnode *vp = ap->a_vp; struct uio *uio = ap->a_uio; int ioflag = ap->a_ioflag; @@ -598,7 +592,7 @@ udf_node = VTOI(vp); ump = udf_node->ump; - DPRINTF(READDIR, ("udf_readdir_called\n")); + DPRINTF(READDIR, ("udf_readdir called\n")); /* This operation only makes sense on directory nodes. */ if (vp->v_type != VDIR) @@ -622,7 +616,7 @@ * were it left off. */ ncookies = uio->uio_resid / 8; - cookies = malloc(sizeof(u_long) * ncookies, M_UDFTEMP, + cookies = malloc(sizeof(u_long) * ncookies, M_TEMP, M_WAITOK | M_ZERO); if (cookies == NULL) return (ENOMEM); @@ -733,10 +727,8 @@ DPRINTF(READDIR, ("\tread dirent `%s', type %d\n", dirent->d_name, dirent->d_type)); if (cookiesp) { - /* - if (++acookies >= ncookies) + if (acookies + 1 > ncookies) break; - */ acookies++; *cookiesp++ = cookie; } @@ -753,7 +745,8 @@ bail: /* tell the calling layer whether we need to be called again */ - *ap->a_eofflag = (uio->uio_offset >= file_size); + if (ap->a_eofflag) + *ap->a_eofflag = (uio->uio_offset >= file_size); if (error < 0) error = 0; @@ -763,7 +756,7 @@ free(cookies, M_UDFTEMP); } else { *ap->a_ncookies = acookies; - //*ap->a_cookies = cookies; + *ap->a_cookies = cookies; } }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120808210507.EAA18106566C>