Comment # 20
on bug 7310
from Niels de Vos
Created attachment 10566 [details]
GlusterFS MKDIR Call+Reply
These two frames contain an MKDIR call and reply. The call contains the
gfid-req attribute in the dict-structure. The value is passed from the
glusterfs-client to a glusterfs-server in binary format (no endian conversion
is done).
In the Call:
The glusterfs-client calculates the value for the GFID, and requests the
glusterfs-server to set this value on the backend (brick).
In the Reply:
The glusterfs-server returns an IATT structure (along with the pre- and
post-parent IATT, ignore these). The GFID in the IATT structure is converted
into big-endian (following the XDR standard).
Summary:
The gfid-req attribute in a dict is converted at all, and is dependent on the
architecture of the glusterfs-client. If servers and clients mix endianness,
weird things will likely happen.
The most common architecture for GlusterFS is x86 (32 and 64 bit), which uses
Little Endian. This is the reason I have decided that the gfid-req attribute in
a dict is dissected as Little Endian. When Gluster supports a mixed endian
environment, the gfid-req attribute in the dict will need to be dissected as
Big Endian.
You are receiving this mail because:
- You are watching all bug changes.