From: J. Bruce Fields Date: Tue, 29 May 2012 18:40:38 +0000 (-0400) Subject: mountd: Honor the no_root_squash flag on pseudo roots X-Git-Tag: debian/1%1.2.8-1~11^2^2~110 X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=commitdiff_plain;h=eae2fa997223ce0edb4218faf2ff67165535d21d;hp=b66c96de551b650680a65a732a1338c3ec25b436 mountd: Honor the no_root_squash flag on pseudo roots From: "J. Bruce Fields" 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 Signed-off-by: Steve Dickson --- 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; }