patch-2.4.0-test8 linux/mm/mmap.c
Next file: linux/mm/numa.c
Previous file: linux/mm/memory.c
Back to the patch index
Back to the overall index
- Lines: 26
- Date:
Tue Aug 29 12:41:12 2000
- Orig file:
v2.4.0-test7/linux/mm/mmap.c
- Orig date:
Wed Aug 23 18:36:39 2000
diff -u --recursive --new-file v2.4.0-test7/linux/mm/mmap.c linux/mm/mmap.c
@@ -906,15 +906,21 @@
if (file) {
struct inode * inode = file->f_dentry->d_inode;
struct address_space *mapping = inode->i_mapping;
+ struct vm_area_struct **head;
+
if (vmp->vm_flags & VM_DENYWRITE)
atomic_dec(&inode->i_writecount);
+
+ head = &mapping->i_mmap;
+ if (vmp->vm_flags & VM_SHARED)
+ head = &mapping->i_mmap_shared;
/* insert vmp into inode's share list */
spin_lock(&mapping->i_shared_lock);
- if((vmp->vm_next_share = mapping->i_mmap) != NULL)
- mapping->i_mmap->vm_pprev_share = &vmp->vm_next_share;
- mapping->i_mmap = vmp;
- vmp->vm_pprev_share = &mapping->i_mmap;
+ if((vmp->vm_next_share = *head) != NULL)
+ (*head)->vm_pprev_share = &vmp->vm_next_share;
+ *head = vmp;
+ vmp->vm_pprev_share = head;
spin_unlock(&mapping->i_shared_lock);
}
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)