2005-07-11 10:32:47

by Olaf Kirch

[permalink] [raw]
Subject: [PATCH fs/locks 1 of 3] Fix miscompare in __posix_lock_file

# Subject: Fix miscompare in __posix_lock_file
#
# If an application requests the same lock twice, the
# kernel should just leave the existing lock in place.
# Currently, it will install a second lock of the same type.
#
# Signed-off-by: Olaf Kirch <[email protected]>

Index: linux-2.6.12/fs/locks.c
===================================================================
--- linux-2.6.12.orig/fs/locks.c 2005-07-11 12:15:59.000000000 +0200
+++ linux-2.6.12/fs/locks.c 2005-07-11 12:16:41.000000000 +0200
@@ -828,12 +828,16 @@ static int __posix_lock_file(struct inod
/* Detect adjacent or overlapping regions (if same lock type)
*/
if (request->fl_type == fl->fl_type) {
+ /* In all comparisons of start vs end, use
+ * "start - 1" rather than "end + 1". If end
+ * is OFFSET_MAX, end + 1 will become negative.
+ */
if (fl->fl_end < request->fl_start - 1)
goto next_lock;
/* If the next lock in the list has entirely bigger
* addresses than the new one, insert the lock here.
*/
- if (fl->fl_start > request->fl_end + 1)
+ if (fl->fl_start - 1 > request->fl_end)
break;

/* If we come here, the new and old lock are of the
--
Olaf Kirch | --- o --- Nous sommes du soleil we love when we play
[email protected] | / | \ sol.dhoop.naytheet.ah kin.ir.samse.qurax


-------------------------------------------------------
This SF.Net email is sponsored by the 'Do More With Dual!' webinar happening
July 14 at 8am PDT/11am EDT. We invite you to explore the latest in dual
core and dual graphics technology at this free one hour event hosted by HP,
AMD, and NVIDIA. To register visit http://www.hp.com/go/dualwebinar
_______________________________________________
NFS maillist - [email protected]
https://lists.sourceforge.net/lists/listinfo/nfs