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