In the error case of ->mmap() we should also restore vma->vm_file to old file in order to keep correct file reference in error path. Signed-off-by: Chengguang Xu <cgxu519@xxxxxxxxxxxx> --- fs/overlayfs/file.c | 1 + 1 file changed, 1 insertion(+) diff --git a/fs/overlayfs/file.c b/fs/overlayfs/file.c index 6e454a294046..046a7adb02c5 100644 --- a/fs/overlayfs/file.c +++ b/fs/overlayfs/file.c @@ -439,6 +439,7 @@ static int ovl_mmap(struct file *file, struct vm_area_struct *vma) if (ret) { /* Drop reference count from new vm_file value */ fput(realfile); + vma->vm_file = file; } else { /* Drop reference count from previous vm_file value */ fput(file); -- 2.27.0