X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=mm%2Fmadvise.c;h=20e075d1c64c9c64674e5fc418c6643418931661;hb=974f7bc5781d3fc16e32d8908c6e48592e767dd2;hp=4454936f87d1b6fb2fde25e1570a2748ea4a16b0;hpb=32983696a48a6c41d99f3eca82ba7510a552d843;p=mv-sheeva.git diff --git a/mm/madvise.c b/mm/madvise.c index 4454936f87d..20e075d1c64 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -83,6 +83,9 @@ static long madvise_willneed(struct vm_area_struct * vma, { struct file *file = vma->vm_file; + if (!file) + return -EBADF; + if (file->f_mapping->a_ops->get_xip_page) { /* no bad return value, but ignore advice */ return 0; @@ -141,11 +144,7 @@ static long madvise_vma(struct vm_area_struct *vma, struct vm_area_struct **prev, unsigned long start, unsigned long end, int behavior) { - struct file *filp = vma->vm_file; - long error = -EBADF; - - if (!filp) - goto out; + long error; switch (behavior) { case MADV_NORMAL: @@ -166,8 +165,6 @@ madvise_vma(struct vm_area_struct *vma, struct vm_area_struct **prev, error = -EINVAL; break; } - -out: return error; }