Merge remote-tracking branch 'linux-2.6.32.y/master' into develop
[firefly-linux-kernel-4.4.55.git] / mm / shmem.c
index 66af0c87d915a713d7ab7f6641e585b970c96d7a..98c24e6d1a8bc07c936a52da0cde9733f821588b 100644 (file)
@@ -2694,6 +2694,11 @@ int shmem_zero_setup(struct vm_area_struct *vma)
        file = shmem_file_setup("dev/zero", size, vma->vm_flags);
        if (IS_ERR(file))
                return PTR_ERR(file);
-       shmem_set_file(vma, file);
+
+       if (vma->vm_file)
+               fput(vma->vm_file);
+       vma->vm_file = file;
+       vma->vm_ops = &shmem_vm_ops;
+       vma->vm_flags |= VM_CAN_NONLINEAR;
        return 0;
 }