2005-11-17 05:35:46

by Xin Zhao

[permalink] [raw]
Subject: nfs3 implementation issue?

In nfs/nfs3proc.c: nfs3_read_done(), I saw the following line:

struct nfs_write_data *data = (struct nfs_write_data *) task->tk_calldata;

I don't know why the tk_calldata is regarded as nfs_write_data instead
of nfs_read_data. When this rpc call is set up, we put
task->tk_calldata as a nfs_read_data object, why will it become a
nfs_write_data after the rpc call is done?

Can someone explain this a little bit?

Thanks!

Xin


2005-11-17 05:52:41

by Trond Myklebust

[permalink] [raw]
Subject: Re: nfs3 implementation issue?

On Thu, 2005-11-17 at 00:35 -0500, Xin Zhao wrote:
> In nfs/nfs3proc.c: nfs3_read_done(), I saw the following line:
>
> struct nfs_write_data *data = (struct nfs_write_data *) task->tk_calldata;
>
> I don't know why the tk_calldata is regarded as nfs_write_data instead
> of nfs_read_data. When this rpc call is set up, we put
> task->tk_calldata as a nfs_read_data object, why will it become a
> nfs_write_data after the rpc call is done?
>
> Can someone explain this a little bit?

Already fixed. See

http://kernel.org/git/gitweb.cgi?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=34123da66e613602de5a886b05c875b6a91b8ed2

Cheers,
Trond