X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=support%2Fexport%2Fxtab.c;h=292087b8c656bc07bd2cd5adea7f76815a7732f8;hp=d9265a24e078627725ea4319e89f43a72f5cb7d9;hb=fd9097110f74f39bce89ec3a341fd9b686a68719;hpb=2d33968c66860ad772aac918992986fe4865b3a4 diff --git a/support/export/xtab.c b/support/export/xtab.c index d9265a2..292087b 100644 --- a/support/export/xtab.c +++ b/support/export/xtab.c @@ -6,7 +6,9 @@ * Copyright (C) 1995, 1996 Olaf Kirch */ -#include "config.h" +#ifdef HAVE_CONFIG_H +#include +#endif #include #include @@ -65,6 +67,9 @@ xtab_mount_read(void) if ((fd=open(_PATH_PROC_EXPORTS, O_RDONLY))>=0) { close(fd); return xtab_read(_PATH_PROC_EXPORTS, 0); + } else if ((fd=open(_PATH_PROC_EXPORTS_ALT, O_RDONLY) >= 0)) { + close(fd); + return xtab_read(_PATH_PROC_EXPORTS_ALT, 0); } else return xtab_read(_PATH_XTAB, 2); } @@ -75,6 +80,12 @@ xtab_export_read(void) return xtab_read(_PATH_ETAB, 1); } +/* + * mountd now keeps an open fd for the etab at all times to make sure that the + * inode number changes when the xtab_export_write is done. If you change the + * routine below such that the files are edited in place, then you'll need to + * fix the auth_reload logic as well... + */ static int xtab_write(char *xtab, char *xtabtmp, int is_export) { @@ -146,7 +157,7 @@ xtab_append(nfs_export *exp) /* * rename newfile onto oldfile unless - * they are identical + * they are identical */ static void cond_rename(char *newfile, char *oldfile) {