From 82d42dffa84fb884684f75769ca13668c5188a5e Mon Sep 17 00:00:00 2001 From: neilbrown Date: Wed, 23 Aug 2000 01:17:52 +0000 Subject: 1/ be less trusting of information in /var/lib/nfs/xtab. Add things to kernel even if they are in here. 2/ O_CREAT [ex]log when locking for write incase they don't exist 3/ added etc/debian diretory with some files --- support/export/xtab.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'support/export/xtab.c') diff --git a/support/export/xtab.c b/support/export/xtab.c index c8adc06..b0c3095 100644 --- a/support/export/xtab.c +++ b/support/export/xtab.c @@ -21,6 +21,10 @@ static int xtab_read(char *xtab, int is_export) { + /* is_export == 0 => reading /proc/fs/nfs/exports - we know these things are exported to kernel + * is_export == 1 => reading /var/lib/nfs/etab - these things are allowed to be exported + * is_export == 2 => reading /var/lib/nfs/xtab - these things might be known to kernel + */ struct exportent *xp; nfs_export *exp; int lockid; @@ -33,11 +37,18 @@ xtab_read(char *xtab, int is_export) !(exp = export_create(xp))) { continue; } - if (is_export) { + switch (is_export) { + case 0: + exp->m_exported = 1; + break; + case 1: exp->m_xtabent = 1; exp->m_mayexport = 1; - } else - exp->m_exported = 1; + break; + case 2: + exp->m_exported = -1;/* may be exported */ + break; + } } endexportent(); xfunlock(lockid); @@ -53,7 +64,7 @@ xtab_mount_read(void) close(fd); return xtab_read(_PATH_PROC_EXPORTS, 0); } else - return xtab_read(_PATH_XTAB, 1); + return xtab_read(_PATH_XTAB, 2); } int -- cgit