patch-2.4.0-test8 linux/fs/locks.c

Next file: linux/fs/minix/bitmap.c
Previous file: linux/fs/jffs/jffs_fm.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.0-test7/linux/fs/locks.c linux/fs/locks.c
@@ -1040,17 +1040,12 @@
 	 */
 	if (IS_MANDLOCK(inode) &&
 	    (inode->i_mode & (S_ISGID | S_IXGRP)) == S_ISGID) {
-		struct vm_area_struct *vma;
 		struct address_space *mapping = inode->i_mapping;
-		spin_lock(&mapping->i_shared_lock);
-		for(vma = mapping->i_mmap;vma;vma = vma->vm_next_share) {
-			if (!(vma->vm_flags & VM_MAYSHARE))
-				continue;
-			spin_unlock(&mapping->i_shared_lock);
+
+		if (mapping->i_mmap_shared != NULL) {
 			error = -EAGAIN;
 			goto out_putf;
 		}
-		spin_unlock(&mapping->i_shared_lock);
 	}
 
 	error = -EINVAL;
@@ -1199,17 +1194,12 @@
 	 */
 	if (IS_MANDLOCK(inode) &&
 	    (inode->i_mode & (S_ISGID | S_IXGRP)) == S_ISGID) {
-		struct vm_area_struct *vma;
 		struct address_space *mapping = inode->i_mapping;
-		spin_lock(&mapping->i_shared_lock);
-		for(vma = mapping->i_mmap;vma;vma = vma->vm_next_share) {
-			if (!(vma->vm_flags & VM_MAYSHARE))
-				continue;
-			spin_unlock(&mapping->i_shared_lock);
+
+		if (mapping->i_mmap_shared != NULL) {
 			error = -EAGAIN;
 			goto out_putf;
 		}
-		spin_unlock(&mapping->i_shared_lock);
 	}
 
 	error = -EINVAL;

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)