1. 09 Apr, 2018 3 commits
    • David Howells's avatar
      afs: Adjust the directory XDR structures · 00317636
      David Howells authored
      Adjust the AFS directory XDR structures in a number of superficial ways:
      
       (1) Rename them to all begin afs_xdr_.
      
       (2) Use u8 instead of uint8_t.
      
       (3) Mark the structures as __packed so they don't get rearranged by the
           compiler.
      
       (4) Rename the hdr member of afs_xdr_dir_block to meta.
      
       (5) Rename the pagehdr member of afs_xdr_dir_block to hdr.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      00317636
    • David Howells's avatar
      afs: Split the directory content defs into a header · 4ea219a8
      David Howells authored
      Split the directory content definitions into a header file so that they can
      be used by multiple .c files.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      4ea219a8
    • David Howells's avatar
      afs: Rearrange status mapping · dd9fbcb8
      David Howells authored
      Rearrange the AFSFetchStatus to inode attribute mapping code in a number of
      ways:
      
       (1) Use an XDR structure rather than a series of incremented pointer
           accesses when decoding an AFSFetchStatus object.  This allows
           out-of-order decode.
      
       (2) Don't store the if_version value but rather just check it and abort if
           it's not something we can handle.
      
       (3) Store the owner and group in the status record as raw values rather
           than converting them to kuid/kgid.  Do that when they're mapped into
           i_uid/i_gid.
      
       (4) Validate the type and abort code up front and abort if they're wrong.
      
       (5) Split the inode attribute setting out into its own function from the
           XDR decode of an AFSFetchStatus object.  This allows it to be called
           from elsewhere too.
      
       (6) Differentiate changes to data from changes to metadata.
      
       (7) Use the split-out attribute mapping function from afs_iget().
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      dd9fbcb8