summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJ. Bruce Fields <bfields@redhat.com>2012-05-29 14:40:38 -0400
committerSteve Dickson <steved@redhat.com>2012-05-29 14:44:18 -0400
commiteae2fa997223ce0edb4218faf2ff67165535d21d (patch)
tree0f005e4f4f2ead66ed6d2e1d8e99b6e6badb5914
parentb66c96de551b650680a65a732a1338c3ec25b436 (diff)
downloadnfs-utils-eae2fa997223ce0edb4218faf2ff67165535d21d.tar.gz
nfs-utils-eae2fa997223ce0edb4218faf2ff67165535d21d.tar.xz
nfs-utils-eae2fa997223ce0edb4218faf2ff67165535d21d.zip
mountd: Honor the no_root_squash flag on pseudo roots
From: "J. Bruce Fields" <bfields@redhat.com> If root squashing is turned off on a export that has multiple directories, the parent directories of the pseudo exports that's built, also needs to have root squashing turned off. Tested-by: Steve Dickson <steved@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
-rw-r--r--utils/mountd/v4root.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/utils/mountd/v4root.c b/utils/mountd/v4root.c
index 708eb61..726b50d 100644
--- a/utils/mountd/v4root.c
+++ b/utils/mountd/v4root.c
@@ -62,6 +62,8 @@ void set_pseudofs_security(struct exportent *pseudo, struct exportent *source)
if (source->e_flags & NFSEXP_INSECURE_PORT)
pseudo->e_flags |= NFSEXP_INSECURE_PORT;
+ if ((source->e_flags & NFSEXP_ROOTSQUASH) == 0)
+ pseudo->e_flags &= ~NFSEXP_ROOTSQUASH;
for (se = source->e_secinfo; se->flav; se++) {
struct sec_entry *new;
@@ -92,7 +94,8 @@ v4root_create(char *path, nfs_export *export)
exp = export_create(&eep, 0);
if (exp == NULL)
return NULL;
- xlog(D_CALL, "v4root_create: path '%s'", exp->m_export.e_path);
+ xlog(D_CALL, "v4root_create: path '%s' flags 0x%x",
+ exp->m_export.e_path, exp->m_export.e_flags);
return &exp->m_export;
}