diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c
index d066aad608add367f0669993228e40d016282a5e..8f958228125277e66497ca50adf34274107befed 100644
--- a/fs/nfs/pnfs.c
+++ b/fs/nfs/pnfs.c
@@ -652,6 +652,7 @@ _pnfs_return_layout(struct inode *ino)
 	lrp = kzalloc(sizeof(*lrp), GFP_KERNEL);
 	if (unlikely(lrp == NULL)) {
 		status = -ENOMEM;
+		put_layout_hdr(lo);
 		goto out;
 	}