On 03/17/2014 02:43 AM, Jan Kara wrote: > On Mon 17-03-14 10:21:18, Jan Kara wrote: >> On Fri 14-03-14 11:33:31, John Stultz wrote: >>> + for (;;) { >>> + unsigned long new_flags; >>> + pgoff_t pgoff; >>> + unsigned long tmp; >>> + >>> + if (!vma) >>> + goto out; >>> + >>> + if (vma->vm_flags & (VM_SPECIAL|VM_LOCKED|VM_MIXEDMAP| >>> + VM_HUGETLB)) >>> + goto out; >>> + >>> + /* We don't support volatility on files for now */ >>> + if (vma->vm_file) { >>> + ret = -EINVAL; >>> + goto out; >>> + } >>> + >>> + new_flags = vma->vm_flags; >>> + >>> + if (start < vma->vm_start) { >>> + start = vma->vm_start; >>> + if (start >= end) >>> + goto out; >>> + } > One more question: This seems to silently skip any holes between VMAs. Is > that really intended? I'd expect that marking unmapped range as volatile / > non-volatile should return error... In any case what happens should be > defined in the description. So.. initially it was by design, but as I look at madvise and think about it further, it does make more sense to throw errors if memory in the range is not mapped. I'll try to rework things to adapt to this. thanks -john -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>