On 05/23/2011 03:01 AM, Benny Halevy wrote: > Signed-off-by: Benny Halevy <bhalevy@xxxxxxxxxxx> > --- > fs/nfs/pnfs.c | 2 ++ > 1 files changed, 2 insertions(+), 0 deletions(-) > > diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c > index 0f59802..d39fcca 100644 > --- a/fs/nfs/pnfs.c > +++ b/fs/nfs/pnfs.c > @@ -1064,6 +1064,7 @@ pnfs_ld_write_done(struct nfs_write_data *data) > > if (!data->pnfs_error) { > pnfs_set_layoutcommit(data); > + memset(&data->task, 0, sizeof(data->task)); What? We used this data task to come here. See: objlayout.c::objlayout_read/write_done() why do you think it is invalid? > data->mds_ops->rpc_call_done(&data->task, data); > data->mds_ops->rpc_release(data); > return 0; > @@ -1113,6 +1114,7 @@ pnfs_ld_read_done(struct nfs_read_data *data) > > if (!data->pnfs_error) { > __nfs4_read_done_cb(data); > + memset(&data->task, 0, sizeof(data->task)); Same here this is called on the task thread > data->mds_ops->rpc_call_done(&data->task, data); > data->mds_ops->rpc_release(data); > return 0; Boaz -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html