diff -up nfs-utils-1.2.0/support/include/nfslib.h.orig nfs-utils-1.2.0/support/include/nfslib.h
--- nfs-utils-1.2.0/support/include/nfslib.h.orig 2009-08-27 11:56:15.475380000 -0400
+++ nfs-utils-1.2.0/support/include/nfslib.h 2009-08-27 11:56:32.497258000 -0400
@@ -90,6 +90,7 @@ struct exportent {
char * e_uuid;
void * e_v4root;
struct sec_entry e_secinfo[SECFLAVOR_COUNT+1];
+ int e_pnfs;
};
struct rmtabent {
diff -up nfs-utils-1.2.0/support/nfs/exports.c.orig nfs-utils-1.2.0/support/nfs/exports.c
--- nfs-utils-1.2.0/support/nfs/exports.c.orig 2009-08-27 11:57:57.945647000 -0400
+++ nfs-utils-1.2.0/support/nfs/exports.c 2009-08-27 11:59:22.231103000 -0400
@@ -293,6 +293,8 @@ putexportent(struct exportent *ep)
}
fprintf(fp, "anonuid=%d,anongid=%d", ep->e_anonuid, ep->e_anongid);
secinfo_show(fp, ep);
+ if (ep->e_pnfs)
+ fprintf(fp, ",pnfs");
fprintf(fp, ")\n");
}
@@ -343,6 +345,7 @@ mkexportent(char *hname, char *path, cha
ee.e_fslocmethod = FSLOC_NONE;
ee.e_fslocdata = NULL;
ee.e_secinfo[0].flav = NULL;
+ ee.e_pnfs = 0;
ee.e_nsquids = 0;
ee.e_nsqgids = 0;
ee.e_uuid = NULL;
@@ -552,6 +555,8 @@ parseopts(char *cp, struct exportent *ep
ep->e_flags &= ~NFSEXP_NOACL;
else if (strcmp(opt, "no_acl") == 0)
ep->e_flags |= NFSEXP_NOACL;
+ else if (strcmp(opt, "pnfs") == 0)
+ ep->e_pnfs = 1;
else if (strncmp(opt, "anonuid=", 8) == 0) {
char *oe;
ep->e_anonuid = strtol(opt+8, &oe, 10);
diff -up nfs-utils-1.2.0/utils/exportfs/exportfs.c.orig nfs-utils-1.2.0/utils/exportfs/exportfs.c
--- nfs-utils-1.2.0/utils/exportfs/exportfs.c.orig 2009-06-02 10:43:05.000000000 -0400
+++ nfs-utils-1.2.0/utils/exportfs/exportfs.c 2009-08-27 12:00:05.139293000 -0400
@@ -523,6 +523,8 @@ dump(int verbose)
#endif
}
secinfo_show(stdout, ep);
+ if (ep->e_pnfs)
+ c = dumpopt(c, ",pnfs");
printf("%c\n", (c != '(')? ')' : ' ');
}
}
diff -up nfs-utils-1.2.0/utils/mountd/cache.c.orig nfs-utils-1.2.0/utils/mountd/cache.c
--- nfs-utils-1.2.0/utils/mountd/cache.c.orig 2009-08-27 11:54:17.895168000 -0400
+++ nfs-utils-1.2.0/utils/mountd/cache.c 2009-08-27 12:01:40.547995000 -0400
@@ -609,6 +609,8 @@ static int dump_to_cache(FILE *f, char *
qword_printint(f, exp->e_anonuid);
qword_printint(f, exp->e_anongid);
qword_printint(f, exp->e_fsid);
+ if (exp->e_pnfs == 1)
+ qword_print(f, "pnfs");
write_fsloc(f, exp, path);
write_secinfo(f, exp, flag_mask);
if (exp->e_uuid == NULL || different_fs) {