[PATCH] Restore an optimisation to locks.c

Matthew Wilcox (willy@debian.org)
Thu, 22 Aug 2002 15:12:32 +0100


akpm reports that this optimisation I removed in 2.4.30 actually has
a noticeable impact. Please apply:

diff -urpNX dontdiff linux-2.5.31/fs/locks.c linux-2.5.31-willy/fs/locks.c
--- linux-2.5.31/fs/locks.c 2002-08-01 14:16:39.000000000 -0700
+++ linux-2.5.31-willy/fs/locks.c 2002-08-21 08:29:29.000000000 -0700
@@ -1609,6 +1612,14 @@ void locks_remove_posix(struct file *fil
{
struct file_lock lock;

+ /*
+ * If there are no locks held on this file, we don't need to call
+ * posix_lock_file(). Another process could be setting a lock on this
+ * file at the same time, but we wouldn't remove that lock anyway.
+ */
+ if (!filp->f_dentry->d_inode->i_flock)
+ return;
+
lock.fl_type = F_UNLCK;
lock.fl_flags = FL_POSIX;
lock.fl_start = 0;

-- 
Revolutions do not require corporate support.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/