patch-2.3.6 linux/mm/mremap.c
Next file: linux/mm/swapfile.c
Previous file: linux/mm/mmap.c
Back to the patch index
Back to the overall index
-  Lines: 31
-  Date:
Thu Jun  3 23:15:29 1999
-  Orig file: 
v2.3.5/linux/mm/mremap.c
-  Orig date: 
Sun Nov 22 09:38:19 1998
diff -u --recursive --new-file v2.3.5/linux/mm/mremap.c linux/mm/mremap.c
@@ -134,12 +134,14 @@
 			new_vma->vm_start = new_addr;
 			new_vma->vm_end = new_addr+new_len;
 			new_vma->vm_offset = vma->vm_offset + (addr - vma->vm_start);
+			lock_kernel();
 			if (new_vma->vm_file)
 				new_vma->vm_file->f_count++;
 			if (new_vma->vm_ops && new_vma->vm_ops->open)
 				new_vma->vm_ops->open(new_vma);
 			insert_vm_struct(current->mm, new_vma);
 			merge_segments(current->mm, new_vma->vm_start, new_vma->vm_end);
+			unlock_kernel();
 			do_munmap(addr, old_len);
 			current->mm->total_vm += new_len >> PAGE_SHIFT;
 			if (new_vma->vm_flags & VM_LOCKED) {
@@ -166,7 +168,6 @@
 	unsigned long ret = -EINVAL;
 
 	down(¤t->mm->mmap_sem);
-	lock_kernel();
 	if (addr & ~PAGE_MASK)
 		goto out;
 	old_len = PAGE_ALIGN(old_len);
@@ -239,7 +240,6 @@
 	else
 		ret = -ENOMEM;
 out:
-	unlock_kernel();
 	up(¤t->mm->mmap_sem);
 	return ret;
 }
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)