_pnfs4_proc_layoutcommit frees data when called with issync==true.
This resulted in setting server from the freed memory.
Signed-off-by: Fred Isaman <[email protected]>
---
fs/nfs/nfs4proc.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index b85239a..5ffdfe1 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -5607,10 +5607,11 @@ out:
int pnfs4_proc_layoutcommit(struct pnfs_layoutcommit_data *data, int issync)
{
struct nfs4_exception exception = { };
+ struct nfs_server *server = NFS_SERVER(data->args.inode);
int err;
do {
- err = nfs4_handle_exception(NFS_SERVER(data->args.inode),
+ err = nfs4_handle_exception(server,
_pnfs4_proc_layoutcommit(data, issync),
&exception);
} while (exception.retry);
--
1.6.6.1