NFS: Optimise away the previous cookie field
[sfrench/cifs-2.6.git] / fs / nfs / nfs4xdr.c
index 8e70b92df4cc8a946674af1a58c32c0cf634c9e0..86a5f6516928e19f44f115ab1ceac92e490ac8fa 100644 (file)
@@ -1605,7 +1605,8 @@ static void encode_readdir(struct xdr_stream *xdr, const struct nfs4_readdir_arg
                FATTR4_WORD0_RDATTR_ERROR,
                FATTR4_WORD1_MOUNTED_ON_FILEID,
        };
-       uint32_t dircount = readdir->count >> 1;
+       uint32_t dircount = readdir->count;
+       uint32_t maxcount = readdir->count;
        __be32 *p, verf[2];
        uint32_t attrlen = 0;
        unsigned int i;
@@ -1618,7 +1619,6 @@ static void encode_readdir(struct xdr_stream *xdr, const struct nfs4_readdir_arg
                        FATTR4_WORD1_SPACE_USED|FATTR4_WORD1_TIME_ACCESS|
                        FATTR4_WORD1_TIME_METADATA|FATTR4_WORD1_TIME_MODIFY;
                attrs[2] |= FATTR4_WORD2_SECURITY_LABEL;
-               dircount >>= 1;
        }
        /* Use mounted_on_fileid only if the server supports it */
        if (!(readdir->bitmask[1] & FATTR4_WORD1_MOUNTED_ON_FILEID))
@@ -1634,7 +1634,7 @@ static void encode_readdir(struct xdr_stream *xdr, const struct nfs4_readdir_arg
        encode_nfs4_verifier(xdr, &readdir->verifier);
        p = reserve_space(xdr, 12 + (attrlen << 2));
        *p++ = cpu_to_be32(dircount);
-       *p++ = cpu_to_be32(readdir->count);
+       *p++ = cpu_to_be32(maxcount);
        *p++ = cpu_to_be32(attrlen);
        for (i = 0; i < attrlen; i++)
                *p++ = cpu_to_be32(attrs[i]);
@@ -7508,7 +7508,6 @@ int nfs4_decode_dirent(struct xdr_stream *xdr, struct nfs_entry *entry,
        if (entry->fattr->valid & NFS_ATTR_FATTR_TYPE)
                entry->d_type = nfs_umode_to_dtype(entry->fattr->mode);
 
-       entry->prev_cookie = entry->cookie;
        entry->cookie = new_cookie;
 
        return 0;