X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=support%2Fnfs%2Fnfsexport.c;h=aa0e49b8cfbff688c42fcd76f5faa77318bb8a52;hp=97de651ab080a1490cc2784ab0bd0874ee401a69;hb=6b6945c52f6dbcdb2768e0b43ef3a865fe89b6ba;hpb=f6a8d3907cd24a4c255234b0161c868763736fdf diff --git a/support/nfs/nfsexport.c b/support/nfs/nfsexport.c index 97de651..aa0e49b 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 @@ -42,13 +44,15 @@ exp_unexp(struct nfsctl_export *exp, int export) if (f == NULL) return -1; qword_print(f, exp->ex_client); qword_print(f, exp->ex_path); - qword_printint(f, 0x7fffffff); if (export) { + qword_printint(f, 0x7fffffff); qword_printint(f, exp->ex_flags); qword_printint(f, exp->ex_anon_uid); qword_printint(f, exp->ex_anon_gid); qword_printint(f, exp->ex_dev); - } + } else + qword_printint(f, 1); + qword_eol(f); fclose(f); @@ -61,9 +65,12 @@ exp_unexp(struct nfsctl_export *exp, int export) qword_printint(f,1); fsid = exp->ex_dev; qword_printhex(f, (char*)&fsid, 4); - qword_printint(f, 0x7fffffff); - if (export) + if (export) { + qword_printint(f, 0x7fffffff); qword_print(f, exp->ex_path); + } else + qword_printint(f, 1); + qword_eol(f); } qword_print(f,exp->ex_client); @@ -73,9 +80,11 @@ exp_unexp(struct nfsctl_export *exp, int export) inode = stb.st_ino; memcpy(fsidstr+4, &inode, 4); qword_printhex(f, fsidstr, 8); - qword_printint(f, 0x7fffffff); - if (export) + if (export) { + qword_printint(f, 0x7fffffff); qword_print(f, exp->ex_path); + } else + qword_printint(f, 1); qword_eol(f); fclose(f); return 0; @@ -86,7 +95,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); } @@ -101,7 +110,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); }