mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00:00
NFSD: Simplify struct knfsd_fh
Compilers are allowed to insert padding and reorder the fields in a struct, so using a union of an array and a struct in struct knfsd_fh is not reliable. The position of elements in an array is more reliable. Suggested-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Jeff Layton <jlayton@kernel.org> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
This commit is contained in:
parent
edf7b905bc
commit
03963793c8
1 changed files with 6 additions and 9 deletions
|
@ -49,17 +49,14 @@ struct knfsd_fh {
|
|||
* Points to the current size while
|
||||
* building a new file handle.
|
||||
*/
|
||||
union {
|
||||
char fh_raw[NFS4_FHSIZE];
|
||||
struct {
|
||||
u8 fh_version; /* == 1 */
|
||||
u8 fh_auth_type; /* deprecated */
|
||||
u8 fh_fsid_type;
|
||||
u8 fh_fileid_type;
|
||||
};
|
||||
};
|
||||
u8 fh_raw[NFS4_FHSIZE];
|
||||
};
|
||||
|
||||
#define fh_version fh_raw[0]
|
||||
#define fh_auth_type fh_raw[1]
|
||||
#define fh_fsid_type fh_raw[2]
|
||||
#define fh_fileid_type fh_raw[3]
|
||||
|
||||
static inline u32 *fh_fsid(const struct knfsd_fh *fh)
|
||||
{
|
||||
return (u32 *)&fh->fh_raw[4];
|
||||
|
|
Loading…
Add table
Reference in a new issue