df_datalen
for (i = 0; i < BLOCKNUM(df->df_datalen, DTFS_BLOCKSHIFT); i++)
if (df->df_datalen > i << DTFS_BLOCKSHIFT)
needalloc = newsize > ROUNDUP(df->df_datalen, DTFS_BLOCKSIZE);
df->df_datalen = newsize;
xfer = MIN(*resid, df->df_datalen - offset);