* Copyright (C) 1995, 1996 Olaf Kirch <okir@monad.swb.de>
*/
-#include "config.h"
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
#include <string.h>
#include <sys/types.h>
char fsidstr[8];
__u16 dev;
__u32 inode;
+ int err;
f = fopen("/proc/net/rpc/nfsd.export/channel", "w");
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);
- }
- qword_eol(f);
+ } else
+ qword_printint(f, 1);
+
+ err = qword_eol(f);
fclose(f);
if (stat(exp->ex_path, &stb) != 0)
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);
- qword_eol(f);
+ } else
+ qword_printint(f, 1);
+
+ err = qword_eol(f) || err;
}
qword_print(f,exp->ex_client);
qword_printint(f,0);
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);
- qword_eol(f);
+ } else
+ qword_printint(f, 1);
+ err = qword_eol(f) || err;
fclose(f);
- return 0;
+ return err;
}
int
{
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);
}
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);
}