osize = dep->de_FileSize;
deextend(dep, length, cred)	struct denode *dep;	u_long length;	struct ucred *cred;{	struct msdosfsmount *pmp = dep->de_pmp;	u_long count, osize;	int error;		/*	 * The root of a DOS filesystem cannot be extended.	 */	if ((DETOV(dep)->v_flag & VROOT) && !FAT32(pmp))		return (EINVAL);	/*	 * Directories cannot be extended.	 */	if (dep->de_Attributes & ATTR_DIRECTORY)		return (EISDIR);	if (length <= dep->de_FileSize)		panic("deextend: file too large");		/*	 * Compute the number of clusters to allocate.	 */	count = de_clcount(pmp, length) - de_clcount(pmp, dep->de_FileSize);	if (count > 0) {		if (count > pmp->pm_freeclustercount)			return (ENOSPC);		error = extendfile(dep, count, NULL, NULL, DE_CLEAR);		if (error) {			/* truncate the added clusters away again */			(void) detrunc(dep, dep->de_FileSize, 0, cred, NULL);			return (error);		}	}			osize = dep->de_FileSize;	dep->de_FileSize = length;	uvm_vnp_setsize(DETOV(dep), (voff_t)dep->de_FileSize);	dep->de_flag |= DE_UPDATE|DE_MODIFIED;	uvm_vnp_zerorange(DETOV(dep), (off_t)osize,	    (size_t)(dep->de_FileSize - osize));	return (deupdat(dep, 1));}