VM_ClearReadHint(vma); 
static long madvise_behavior(struct vm_area_struct * vma,		     struct vm_area_struct **prev,		     unsigned long start, unsigned long end, int behavior){	struct mm_struct * mm = vma->vm_mm;	int error = 0;	pgoff_t pgoff;	int new_flags = vma->vm_flags & ~VM_READHINTMASK;	switch (behavior) {	case MADV_SEQUENTIAL:		new_flags |= VM_SEQ_READ;		break;	case MADV_RANDOM:		new_flags |= VM_RAND_READ;		break;	default:		break;	}	if (new_flags == vma->vm_flags) {		*prev = vma;		goto success;	}	pgoff = vma->vm_pgoff + ((start - vma->vm_start) >> PAGE_SHIFT);	*prev = vma_merge(mm, *prev, start, end, new_flags, vma->anon_vma,				vma->vm_file, pgoff, vma_policy(vma));	if (*prev) {		vma = *prev;		goto success;	}	*prev = vma;	if (start != vma->vm_start) {		error = split_vma(mm, vma, start, 1);		if (error)			goto out;	}	if (end != vma->vm_end) {		error = split_vma(mm, vma, end, 0);		if (error)			goto out;	}	/*	 * vm_flags is protected by the mmap_sem held in write mode.	 */	VM_ClearReadHint(vma);	vma->vm_flags = new_flags;out:	if (error == -ENOMEM)		error = -EAGAIN;success:	return error;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/3bc1ee3e8f1c05c0f64a479c6d56eb34a6190599/madvise.c/buggy/mm/madvise.c