diff options
| author | Niels de Vos <ndevos@redhat.com> | 2015-01-01 13:15:45 +0100 | 
|---|---|---|
| committer | Vijay Bellur <vbellur@redhat.com> | 2015-03-15 07:01:38 -0700 | 
| commit | aa66b8404f45712c45d75d6a2a37f32e2792cc83 (patch) | |
| tree | 11d7a95bd6286204ec0ec33e4cdd8ba0c5b48028 /xlators/nfs/server/src/nfs3-fh.c | |
| parent | aac1ec0a61d9267b6ae7a280b368dfd357b7dcdc (diff) | |
gNFS: Export / Netgroup authentication on Gluster NFS mount
* Parses linux style export file/netgroups file into a structure that
  can be lookedup.
* This parser turns each line into a structure called an "export
  directory". Each of these has a dictionary of hosts and netgroups
  which can be looked up during the mount authentication process.
  (See Change-Id Ic060aac and I7e6aa6bc)
* A string beginning withan '@' is treated as a netgroup and a string
  beginning without an @ is a host.
  (See Change-Id Ie04800d)
* This parser does not currently support all the options in the man page
  ('man exports'), but we can easily add them.
BUG: 1143880
URL: http://www.gluster.org/community/documentation/index.php/Features/Exports_Netgroups_Authentication
Change-Id: I181e8c1814d6ef3cae5b4d88353622734f0c0f0b
Original-author: Shreyas Siravara <shreyas.siravara@gmail.com>
CC: Richard Wareing <rwareing@fb.com>
CC: Jiffin Tony Thottan <jthottan@redhat.com>
Signed-off-by: Niels de Vos <ndevos@redhat.com>
Reviewed-on: http://review.gluster.org/8758
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Diffstat (limited to 'xlators/nfs/server/src/nfs3-fh.c')
| -rw-r--r-- | xlators/nfs/server/src/nfs3-fh.c | 13 | 
1 files changed, 8 insertions, 5 deletions
diff --git a/xlators/nfs/server/src/nfs3-fh.c b/xlators/nfs/server/src/nfs3-fh.c index 510913e8c43..88a8fcb1180 100644 --- a/xlators/nfs/server/src/nfs3-fh.c +++ b/xlators/nfs/server/src/nfs3-fh.c @@ -81,7 +81,7 @@ nfs3_fh_build_indexed_root_fh (xlator_list_t *cl, xlator_t *xl)  struct nfs3_fh -nfs3_fh_build_uuid_root_fh (uuid_t volumeid) +nfs3_fh_build_uuid_root_fh (uuid_t volumeid, uuid_t mountid)  {          struct nfs3_fh  fh = {{0}, };          struct iatt     buf = {0, }; @@ -90,6 +90,7 @@ nfs3_fh_build_uuid_root_fh (uuid_t volumeid)          uuid_copy (buf.ia_gfid, root);          nfs3_fh_init (&fh, &buf);          uuid_copy (fh.exportid, volumeid); +        uuid_copy (fh.mountid, mountid);          return fh;  } @@ -115,13 +116,15 @@ nfs3_fh_to_str (struct nfs3_fh *fh, char *str, size_t len)  {          char            gfid[GF_UUID_BUF_SIZE];          char            exportid[GF_UUID_BUF_SIZE]; +        char            mountid[GF_UUID_BUF_SIZE];          if ((!fh) || (!str))                  return; -        snprintf (str, len, "FH: exportid %s, gfid %s", +        snprintf (str, len, "FH: exportid %s, gfid %s, mountid %s",                    uuid_utoa_r (fh->exportid, exportid), -                  uuid_utoa_r (fh->gfid, gfid)); +                  uuid_utoa_r (fh->gfid, gfid), +                  uuid_utoa_r (fh->mountid, mountid));  }  void @@ -148,7 +151,6 @@ nfs3_fh_build_parent_fh (struct nfs3_fh *child, struct iatt *newstat,          nfs3_fh_init (newfh, newstat);          uuid_copy (newfh->exportid, child->exportid); -          return 0;  } @@ -164,6 +166,7 @@ nfs3_build_fh (inode_t *inode, uuid_t exportid, struct nfs3_fh *newfh)          newfh->ident[3] = GF_NFSFH_IDENT3;          uuid_copy (newfh->gfid, inode->gfid);          uuid_copy (newfh->exportid, exportid); +        /*uuid_copy (newfh->mountid, mountid);*/          return 0;  } @@ -176,7 +179,7 @@ nfs3_fh_build_child_fh (struct nfs3_fh *parent, struct iatt *newstat,          nfs3_fh_init (newfh, newstat);          uuid_copy (newfh->exportid, parent->exportid); - +        uuid_copy (newfh->mountid, parent->mountid);          return 0;  }  | 
