{ NFSEXP_ALLSQUASH, {"all_squash", ""}},
        { NFSEXP_ASYNC, {"async", "sync"}},
        { NFSEXP_GATHERED_WRITES, {"wdelay", "no_wdelay"}},
+       { NFSEXP_NOREADDIRPLUS, {"nordirplus", ""}},
        { NFSEXP_NOHIDE, {"nohide", ""}},
        { NFSEXP_CROSSMOUNT, {"crossmnt", ""}},
        { NFSEXP_NOSUBTREECHECK, {"no_subtree_check", ""}},
 
        resp->buflen = resp->count;
        resp->rqstp = rqstp;
        offset = argp->cookie;
+
+       nfserr = fh_verify(rqstp, &resp->fh, S_IFDIR, NFSD_MAY_NOP);
+       if (nfserr)
+               RETURN_STATUS(nfserr);
+
+       if (resp->fh.fh_export->ex_flags & NFSEXP_NOREADDIRPLUS)
+               RETURN_STATUS(nfserr_notsupp);
+
        nfserr = nfsd_readdir(rqstp, &resp->fh,
                                     &offset,
                                     &resp->common,
 
 #define NFSEXP_ALLSQUASH       0x0008
 #define NFSEXP_ASYNC           0x0010
 #define NFSEXP_GATHERED_WRITES 0x0020
-/* 40 80 100 currently unused */
+#define NFSEXP_NOREADDIRPLUS    0x0040
+/* 80 100 currently unused */
 #define NFSEXP_NOHIDE          0x0200
 #define NFSEXP_NOSUBTREECHECK  0x0400
 #define        NFSEXP_NOAUTHNLM        0x0800          /* Don't authenticate NLM requests - just trust */
  */
 #define        NFSEXP_V4ROOT           0x10000
 /* All flags that we claim to support.  (Note we don't support NOACL.) */
-#define NFSEXP_ALLFLAGS                0x17E3F
+#define NFSEXP_ALLFLAGS                0x1FE7F
 
 /* The flags that may vary depending on security flavor: */
 #define NFSEXP_SECINFO_FLAGS   (NFSEXP_READONLY | NFSEXP_ROOTSQUASH \