[prev in list] [next in list] [prev in thread] [next in thread]
List: linux-next
Subject: Re: [PATCH] nfs41: get rid of unused struct nfs41_exchange_id_res
From: Trond Myklebust <trond.myklebust () fys ! uio ! no>
Date: 2009-05-05 19:34:13
Message-ID: 1241552053.5174.44.camel () heimdal ! trondhjem ! org
[Download RAW message or body]
On Fri, 2009-05-01 at 23:14 +0300, Benny Halevy wrote:
> struct nfs41_exchange_id_res is currently allocated on the stack
> insanely taking over 2K of stack space due to the NFS4_OPAQUE_LIMIT (1K(
> byte arrays embedded in server_owner and server_scope.
> Since these are not in use yet, this patch gets rid of them for the
> time being.
>
> Signed-off-by: Benny Halevy <bhalevy@panasas.com>
> ---
> fs/nfs/nfs4xdr.c | 27 ++++++++++++++-------------
> include/linux/nfs_xdr.h | 3 ---
> 2 files changed, 14 insertions(+), 16 deletions(-)
>
> diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c
> index 80af0ae..3350d19 100644
> --- a/fs/nfs/nfs4xdr.c
> +++ b/fs/nfs/nfs4xdr.c
> @@ -4185,8 +4185,8 @@ static int decode_delegreturn(struct xdr_stream *xdr)
> static int decode_exchange_id(struct xdr_stream *xdr,
> struct nfs41_exchange_id_res *res)
> {
> - uint32_t *p;
> - int status, dummy;
> + uint32_t *p, dummy;
> + int status;
> struct nfs_client *clp = res->client;
>
> status = decode_op_hdr(xdr, OP_EXCHANGE_ID);
> @@ -4204,25 +4204,26 @@ static int decode_exchange_id(struct xdr_stream *xdr,
> if (dummy != SP4_NONE)
> return -EIO;
>
> - /* minor_id */
> + /* Throw away minor_id */
> READ_BUF(8);
> - READ64(res->server_owner.minor_id);
> + p += 8;
^^^^^^^^ Err... This isn't the same thing at all!
You're suddenly skipping 10=words instead of the original 2. READ_BUF()
will already take care of updating the 'p' pointer.
>
> - /* Major id */
> + /* Throw away Major id */
> READ_BUF(4);
> - READ32(res->server_owner.major_id_sz);
> - READ_BUF(res->server_owner.major_id_sz);
> - COPYMEM(res->server_owner.major_id, res->server_owner.major_id_sz);
> + READ32(dummy);
> + READ_BUF(dummy);
> + p += XDR_QUADLEN(dummy);
^^^^^^^^^^^^^^^^^^^^^^^^^ Ditto. You're skipping 2*dummy words.
>
> - /* server_scope */
> + /* Throw away server_scope */
> READ_BUF(4);
> - READ32(res->server_scope.server_scope_sz);
> - READ_BUF(res->server_scope.server_scope_sz);
> - COPYMEM(res->server_scope.server_scope,
> - res->server_scope.server_scope_sz);
> + READ32(dummy);
> + READ_BUF(dummy);
> + p += XDR_QUADLEN(dummy);
^^^^^^^^^^^^^^^^^^^^^^^^ Ditto
> +
> /* Throw away Implementation id array */
> READ_BUF(4);
> READ32(dummy);
> + READ_BUF(dummy);
> p += XDR_QUADLEN(dummy);
^^^^^^^^^^^^^^^^^^^^^^^^ Ditto
>
> return 0;
> diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h
> index 071a6d1..62f63fb 100644
> --- a/include/linux/nfs_xdr.h
> +++ b/include/linux/nfs_xdr.h
> @@ -925,9 +925,6 @@ struct server_scope {
> struct nfs41_exchange_id_res {
> struct nfs_client *client;
> u32 flags;
> - struct server_owner server_owner;
> - struct server_scope server_scope;
> - struct nfs_impl_id4 impl_id;
> };
>
> struct nfs41_create_session_args {
--
To unsubscribe from this list: send the line "unsubscribe linux-next" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic