• NeilBrown's avatar
    NFSD: simplify struct nfsfh · d8b26071
    NeilBrown authored
    Most of the fields in 'struct knfsd_fh' are 2 levels deep (a union and a
    struct) and are accessed using macros like:
    
     #define fh_FOO fh_base.fh_new.fb_FOO
    
    This patch makes the union and struct anonymous, so that "fh_FOO" can be
    a name directly within 'struct knfsd_fh' and the #defines aren't needed.
    
    The file handle as a whole is sometimes accessed as "fh_base" or
    "fh_base.fh_pad", neither of which are particularly helpful names.
    As the struct holding the filehandle is now anonymous, we
    cannot use the name of that, so we union it with 'fh_raw' and use that
    where the raw filehandle is needed.  fh_raw also ensure the structure is
    large enough for the largest possible filehandle.
    
    fh_raw is a 'char' array, removing any need to cast it for memcpy etc.
    
    SVCFH_fmt() is simplified using the "%ph" printk format.  This
    changes the appearance of filehandles in dprintk() debugging, making
    them a little more precise.
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: default avatarNeilBrown <neilb@suse.de>
    Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
    d8b26071
nfsfh.c 17.5 KB