147490Spendry /*
247490Spendry  * Copyright (c) 1989 Jan-Simon Pendry
347490Spendry  * Copyright (c) 1989 Imperial College of Science, Technology & Medicine
4*61793Sbostic  * Copyright (c) 1989, 1993
5*61793Sbostic  *	The Regents of the University of California.  All rights reserved.
647490Spendry  *
747490Spendry  * This code is derived from software contributed to Berkeley by
847490Spendry  * Jan-Simon Pendry at Imperial College, London.
947490Spendry  *
1047530Spendry  * %sccs.include.redist.c%
1147490Spendry  *
12*61793Sbostic  *	@(#)wr_exportfs.c	8.1 (Berkeley) 06/06/93
1349686Spendry  *
1452455Spendry  * $Id: wr_exportfs.c,v 5.2.2.1 1992/02/09 15:09:48 jsp beta $
1549686Spendry  *
1647490Spendry  */
1747490Spendry 
1847490Spendry #include "../fsinfo/fsinfo.h"
1947490Spendry 
write_export_info(ef,q,errors)2047490Spendry static int write_export_info(ef, q, errors)
2147490Spendry FILE *ef;
2247490Spendry qelem *q;
2347490Spendry int errors;
2447490Spendry {
2547490Spendry 	mount *mp;
2647490Spendry 
2747490Spendry 	ITER(mp, mount, q) {
2847490Spendry 		if (mp->m_mask & (1<<DM_EXPORTFS))
2947490Spendry 			fprintf(ef, "%s\t%s\n", mp->m_volname, mp->m_exportfs);
3047490Spendry 		if (mp->m_mount)
3147490Spendry 			errors += write_export_info(ef, mp->m_mount, 0);
3247490Spendry 	}
3347490Spendry 
3447490Spendry 	return errors;
3547490Spendry }
3647490Spendry 
write_dkexports(ef,q)3747490Spendry static int write_dkexports(ef, q)
3847490Spendry FILE *ef;
3947490Spendry qelem *q;
4047490Spendry {
4147490Spendry 	int errors = 0;
4247490Spendry 	disk_fs *dp;
4347490Spendry 
4447490Spendry 	ITER(dp, disk_fs, q) {
4547490Spendry 		if (dp->d_mount)
4647490Spendry 			errors += write_export_info(ef, dp->d_mount, 0);
4747490Spendry 	}
4847490Spendry 	return errors;
4947490Spendry }
5047490Spendry 
write_exportfs(q)5147490Spendry int write_exportfs(q)
5247490Spendry qelem *q;
5347490Spendry {
5447490Spendry 	int errors = 0;
5547490Spendry 
5647490Spendry 	if (exportfs_pref) {
5747490Spendry 		host *hp;
5847490Spendry 		show_area_being_processed("write exportfs", "");
5947490Spendry 		ITER(hp, host, q) {
6047490Spendry 			if (hp->h_disk_fs) {
6147490Spendry 				FILE *ef = pref_open(exportfs_pref, hp->h_hostname, gen_hdr, hp->h_hostname);
6247490Spendry 				if (ef) {
6347490Spendry 					show_new(hp->h_hostname);
6447490Spendry 					errors += write_dkexports(ef, hp->h_disk_fs);
6547490Spendry 					errors += pref_close(ef);
6647490Spendry 				} else {
6747490Spendry 					errors++;
6847490Spendry 				}
6947490Spendry 			}
7047490Spendry 		}
7147490Spendry 	}
7247490Spendry 
7347490Spendry 	return errors;
7447490Spendry }
75