diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index 24df1c068ebadffbee36359cd98ff4ef028b6372..fa90d83197e38fe7c0004405da8fd46b494b5df6 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -2964,6 +2964,10 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata,
 	}
 
 out:
+	if (opendata->lgp) {
+		nfs4_lgopen_release(opendata->lgp);
+		opendata->lgp = NULL;
+	}
 	if (!opendata->cancelled)
 		nfs4_sequence_free_slot(&opendata->o_res.seq_res);
 	return ret;