[PATCH] no session no seq_done
Benny Halevy
bhalevy at ns1.bhalevy.com
Thu May 3 09:35:54 EDT 2007
Fix BUG_ON(!session) in nfs41_proc_sequence_done.
pnfs4_{read,write}_done should not call server->rpc_ops->sequence_done
when data->session is NULL. This can happen if we're doing
a layout driver I/O for non-file layout types. In these cases
data->session remains null since the I/O to the storage device
Signed-off-by: Benny Halevy <bhalevy at ns1.bhalevy.com>
---
fs/nfs/nfs4proc.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index 69ad434..7ab0b01 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -3537,8 +3537,8 @@ static int pnfs4_read_done(struct rpc_task *task, struct nfs_read_data *data)
if (task->tk_status > 0 && !(data->pnfsflags & PNFS_USE_DS))
renew_lease(server, data->timestamp);
- if (server->rpc_ops->sequence_done)
- server->rpc_ops->sequence_done(data->session,
+ if (data->session && server->rpc_ops->sequence_done)
+ server->rpc_ops->sequence_done(data->session,
data->res.minorversion_info, task->tk_status);
return 0;
}
@@ -3628,7 +3628,7 @@ static int pnfs4_write_done(struct rpc_task *task, struct nfs_write_data *data)
pnfs_writeback_done_update(data);
out:
- if(server->rpc_ops->sequence_done)
+ if (data->session && server->rpc_ops->sequence_done)
server->rpc_ops->sequence_done(data->session,
data->res.minorversion_info, task->tk_status);
--
1.5.1
--------------070505020703030101040301--
More information about the pNFS
mailing list