NFS: Fix the type of struct nfs_fattr->mode
There is no point in using anything other than umode_t, since we copy the content pretty much directly into inode->i_mode. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
@ -91,19 +91,15 @@
|
||||
/*
|
||||
* Map file type to S_IFMT bits
|
||||
*/
|
||||
static struct {
|
||||
unsigned int mode;
|
||||
unsigned int nfs2type;
|
||||
} nfs_type2fmt[] = {
|
||||
{ 0, NFNON },
|
||||
{ S_IFREG, NFREG },
|
||||
{ S_IFDIR, NFDIR },
|
||||
{ S_IFBLK, NFBLK },
|
||||
{ S_IFCHR, NFCHR },
|
||||
{ S_IFLNK, NFLNK },
|
||||
{ S_IFSOCK, NFSOCK },
|
||||
{ S_IFIFO, NFFIFO },
|
||||
{ 0, NFBAD }
|
||||
static const umode_t nfs_type2fmt[] = {
|
||||
[NF3BAD] = 0,
|
||||
[NF3REG] = S_IFREG,
|
||||
[NF3DIR] = S_IFDIR,
|
||||
[NF3BLK] = S_IFBLK,
|
||||
[NF3CHR] = S_IFCHR,
|
||||
[NF3LNK] = S_IFLNK,
|
||||
[NF3SOCK] = S_IFSOCK,
|
||||
[NF3FIFO] = S_IFIFO,
|
||||
};
|
||||
|
||||
/*
|
||||
@ -148,13 +144,12 @@ static __be32 *
|
||||
xdr_decode_fattr(__be32 *p, struct nfs_fattr *fattr)
|
||||
{
|
||||
unsigned int type, major, minor;
|
||||
int fmode;
|
||||
umode_t fmode;
|
||||
|
||||
type = ntohl(*p++);
|
||||
if (type >= NF3BAD)
|
||||
type = NF3BAD;
|
||||
fmode = nfs_type2fmt[type].mode;
|
||||
fattr->type = nfs_type2fmt[type].nfs2type;
|
||||
if (type > NF3FIFO)
|
||||
type = NF3NON;
|
||||
fmode = nfs_type2fmt[type];
|
||||
fattr->mode = (ntohl(*p++) & ~S_IFMT) | fmode;
|
||||
fattr->nlink = ntohl(*p++);
|
||||
fattr->uid = ntohl(*p++);
|
||||
|
Reference in New Issue
Block a user