while (mnt = getmountent(mfp)) {
while ((mnt = getmountent(mfp))) {
struct mntinfo *makemntinfo(mi) 	struct mntinfo *mi;{	FILE *mfp;	static struct mntinfo *mntinfo, *newmi, *m;	struct stat mntstat;	mntent_t *mnt;	int timeo = 310;	if (!(mfp = setmountent(MOUNTED_FILE, "r"))) {		message(MT_NERROR, "%s: setmntent failed: %s", 			MOUNTED_FILE, SYSERR);		return((struct mntinfo *) NULL);	}	(void) signal(SIGALRM, wakeup);	(void) alarm(timeo);	if (setjmp(env)) {		message(MT_NERROR, "Timeout getting mount info");		return((struct mntinfo *) NULL);	}	mntinfo = mi;	while (mnt = getmountent(mfp)) {		debugmsg(DM_MISC, "mountent = '%s' (%s)", 			 mnt->me_path, mnt->me_type);		/*		 * Make sure we don't already have it for some reason		 */		if (isdupmnt(mnt, mntinfo))			continue;		/*		 * Get stat info		 */		if (stat(mnt->me_path, &mntstat) != 0) {			message(MT_WARNING, "%s: Cannot stat filesystem: %s", 				mnt->me_path, SYSERR);			continue;		}		/*		 * Create new entry		 */		newmi = (struct mntinfo *) xcalloc(1, sizeof(struct mntinfo));		newmi->mi_mnt = newmountent(mnt);		newmi->mi_statb = 		    (struct stat *) xcalloc(1, sizeof(struct stat));		bcopy((char *) &mntstat, (char *) newmi->mi_statb, 		      sizeof(struct stat));		/*		 * Add entry to list		 */		if (mntinfo) {			for (m = mntinfo; m && m->mi_nxt; m = m->mi_nxt);			m->mi_nxt = newmi;		} else			mntinfo = newmi;	}	(void) alarm(0);	(void) endmountent(mfp);	return(mntinfo);}