[pnfs] 19 questions
Benny Halevy
bhalevy at panasas.com
Tue Feb 5 09:30:59 EST 2008
IETF listeners, please see spec related issues below.
Benny
On Feb. 05, 2008, 2:11 +0200, Dean Hildebrand <seattleplus at gmail.com> wrote:
> Some questions about draft 19 (not 19 questions):
>
> 1) On the server I need the superblock so I can call the getdeviceinfo
> export operation. The problem is that getdeviceinfo no longer includes
> the current_fh. Is there a way on the server to get the superblock
> without the filehandle? (maybe using something in the session?) If not,
> then we will have to encode something in the device id that allows us to
> map to the superblock (is the fsid enough?) Any ideas?
Yes, this is the price of having a global device ID namespace.
To ensure uniqueness between different file systems we should
encode the deviceid4 type which is 16 bytes long as
struct pnfs_deviceid {
u64 ex_fsid;
__be64 devid;
};
Although the exported file system should only encode its private part
we can let it fill the whole structure as it will also need to do that
when encoding the deviceid in layoutget so I suggest defining static
inline helper functions for xdr encoding and decoding the deviceid.
>
> 2) Can getdeviceinfo return a device for the wrong layout type? It
> seems that getdeviceinfo returns the layout type, which seems a little
> silly to me. If it should return the layout type, and it doesn't match
> the requesting layout type, what should the client do?
Yeah, the returned layout type is part of device_addr4 which is self sufficient
with that respect. getdeviceinfo could have just returned the opaque part of the
device_addr4 structure. Cc'ing the nfsv4 ietf mailing list...
>
> 3) In draft-19, should bitmap4 not have <>?
> bitmap4<> typedef uint32_t bitmap4<>;
> ^^^^
I don't this it matters too much, However it does look like a bug
in the generating script... Fixed by the following patch:
diff -Npu a/dotx.d/spit_types.sh b/dotx.d/spit_types.sh
--- a/dotx.d/spit_types.sh
+++ b/dotx.d/spit_types.sh
@@ -50,11 +50,11 @@ EOF
then
mkdir -p autogen
- cat $tmp | sed 's/<xref/qdfuixref/g' | sed 's/</\</g' |
+ cat $tmp | sed 's/<xref/qdfuixref/g' | sed -r 's/<([^<>]*)>/\<\1\>/g' |
sed 's/qdfuixref/<xref/g' | awk -F: '
{
- i = index($3, "<");
+ i = index($3, "<");
if (i == 0) {
i = index($3, "[");
};
--
[Note: the replacement of "<...>" to "<...>" is required for generating correct
xml/html. I tried adding a global replacement of ">" to ">" but that screws up
">" matching "<xref". I'm not sure that sed -r is portable though (Does Solaris have it?)
so if this is a problem sed 's/<>/\<\>/g' does an OK job but still leaves stray
closing angle brackets around (e.g. in nfs_fh4<NFS4_FHSIZE>)
Benny
> For reference, in rfc3530 it does not have the <>. (other ops have the
> <> added as well)
>
> Thanks,
> Dean
> _______________________________________________
> pNFS mailing list
> pNFS at linux-nfs.org
> http://linux-nfs.org/cgi-bin/mailman/listinfo/pnfs
More information about the pNFS
mailing list