socsvn commit: r240206 - soc2012/oleksandr/udf-head/sys/fs/udf2
oleksandr at FreeBSD.org
oleksandr at FreeBSD.org
Wed Aug 8 21:05:10 UTC 2012
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;
}
}
More information about the svn-soc-all
mailing list