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