X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=support%2Fnfs%2Fnfsexport.c;h=f129fd2e088a6808200043fed007302c92577fdf;hp=0e8b52b334ba3e69e8bd676c64c7f3d66827e51a;hb=f0a6165a611c28e94513b1c2df5826b23d154ba4;hpb=182d7d59b5a9fdd43e74053ba779306eb7606b34 diff --git a/support/nfs/nfsexport.c b/support/nfs/nfsexport.c index 0e8b52b..f129fd2 100644 --- a/support/nfs/nfsexport.c +++ b/support/nfs/nfsexport.c @@ -6,7 +6,9 @@ * Copyright (C) 1995, 1996 Olaf Kirch */ -#include "config.h" +#ifdef HAVE_CONFIG_H +#include +#endif #include #include @@ -36,6 +38,7 @@ exp_unexp(struct nfsctl_export *exp, int export) char fsidstr[8]; __u16 dev; __u32 inode; + int err; f = fopen("/proc/net/rpc/nfsd.export/channel", "w"); @@ -51,7 +54,7 @@ exp_unexp(struct nfsctl_export *exp, int export) } else qword_printint(f, 1); - qword_eol(f); + err = qword_eol(f); fclose(f); if (stat(exp->ex_path, &stb) != 0) @@ -69,7 +72,7 @@ exp_unexp(struct nfsctl_export *exp, int export) } else qword_printint(f, 1); - qword_eol(f); + err = qword_eol(f) || err; } qword_print(f,exp->ex_client); qword_printint(f,0); @@ -83,9 +86,9 @@ exp_unexp(struct nfsctl_export *exp, int export) qword_print(f, exp->ex_path); } else qword_printint(f, 1); - qword_eol(f); + err = qword_eol(f) || err; fclose(f); - return 0; + return err; } int @@ -93,7 +96,7 @@ nfsexport(struct nfsctl_export *exp) { struct nfsctl_arg arg; int fd; - if ((fd=open("/proc/net/rpc/nfsd.fh/channel", O_RDWR))>= 0) { + if ((fd=open("/proc/net/rpc/nfsd.fh/channel", O_WRONLY))>= 0) { close(fd); return exp_unexp(exp, 1); } @@ -108,7 +111,7 @@ nfsunexport(struct nfsctl_export *exp) struct nfsctl_arg arg; int fd; - if ((fd=open("/proc/net/rpc/nfsd.fh/channel", O_RDWR))>= 0) { + if ((fd=open("/proc/net/rpc/nfsd.fh/channel", O_WRONLY))>= 0) { close(fd); return exp_unexp(exp, 0); }