patch-2.1.45 linux/mm/mlock.c

Next file: linux/mm/mmap.c
Previous file: linux/mm/filemap.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.44/linux/mm/mlock.c linux/mm/mlock.c
@@ -38,8 +38,7 @@
 	n->vm_end = end;
 	vma->vm_offset += vma->vm_start - n->vm_start;
 	n->vm_flags = newflags;
-	if (n->vm_inode)
-		atomic_inc(&n->vm_inode->i_count);
+	n->vm_dentry = dget(vma->vm_dentry);
 	if (n->vm_ops && n->vm_ops->open)
 		n->vm_ops->open(n);
 	insert_vm_struct(current->mm, n);
@@ -59,8 +58,7 @@
 	n->vm_start = start;
 	n->vm_offset += n->vm_start - vma->vm_start;
 	n->vm_flags = newflags;
-	if (n->vm_inode)
-		atomic_inc(&n->vm_inode->i_count);
+	n->vm_dentry = dget(vma->vm_dentry);
 	if (n->vm_ops && n->vm_ops->open)
 		n->vm_ops->open(n);
 	insert_vm_struct(current->mm, n);
@@ -89,8 +87,9 @@
 	vma->vm_offset += vma->vm_start - left->vm_start;
 	right->vm_offset += right->vm_start - left->vm_start;
 	vma->vm_flags = newflags;
-	if (vma->vm_inode)
-		atomic_add(2, &vma->vm_inode->i_count);
+	if (vma->vm_dentry)
+		vma->vm_dentry->d_count += 2;
+
 	if (vma->vm_ops && vma->vm_ops->open) {
 		vma->vm_ops->open(left);
 		vma->vm_ops->open(right);

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov