Thanks for applying the last series of patches. Here's a new one,
all cleanup:
- Inline locks_notify_blocked.
- Remove a couple of now-bogus comments.
- Remove the obsolete F_SHLCK and F_EXLCK cases.
- Remove the last remaining reference to FL_BROKEN.
diff -urNX dontdiff linux-2.5.21/fs/locks.c linux-2.5.21-flock/fs/locks.c
--- linux-2.5.21/fs/locks.c Sun Jun 9 06:09:49 2002
+++ linux-2.5.21-flock/fs/locks.c Sun Jun 9 08:14:27 2002
@@ -443,15 +446,6 @@
list_add(&waiter->fl_link, &blocked_list);
}
-static inline
-void locks_notify_blocked(struct file_lock *waiter)
-{
- if (waiter->fl_notify)
- waiter->fl_notify(waiter);
- else
- wake_up(&waiter->fl_wait);
-}
-
/* Wake up processes blocked waiting for blocker.
* If told to wait then schedule the processes until the block list
* is empty, otherwise empty the block list ourselves.
@@ -459,12 +453,13 @@
static void locks_wake_up_blocks(struct file_lock *blocker)
{
while (!list_empty(&blocker->fl_block)) {
- struct file_lock *waiter = list_entry(blocker->fl_block.next, struct file_lock, fl_block);
- /* Remove waiter from the block list, because by the
- * time it wakes up blocker won't exist any more.
- */
+ struct file_lock *waiter = list_entry(blocker->fl_block.next,
+ struct file_lock, fl_block);
locks_delete_block(waiter);
- locks_notify_blocked(waiter);
+ if (waiter->fl_notify)
+ waiter->fl_notify(waiter);
+ else
+ wake_up(&waiter->fl_wait);
}
}
@@ -1405,8 +1408,6 @@
if (copy_from_user(&flock, l, sizeof(flock)))
goto out;
- /* Get arguments and validate them ...
- */
inode = filp->f_dentry->d_inode;
/* Don't allow mandatory locks on files that may be memory mapped
@@ -1438,23 +1439,6 @@
break;
case F_UNLCK:
break;
- case F_SHLCK:
- case F_EXLCK:
-#ifdef __sparc__
-/* warn a bit for now, but don't overdo it */
-{
- static int count = 0;
- if (!count) {
- count=1;
- printk(KERN_WARNING
- "fcntl_setlk() called by process %d (%s) with broken flock() emulation\n",
- current->pid, current->comm);
- }
-}
- if (!(filp->f_mode & 3))
- goto out;
- break;
-#endif
default:
error = -EINVAL;
goto out;
@@ -1543,8 +1527,6 @@
if (copy_from_user(&flock, l, sizeof(flock)))
goto out;
- /* Get arguments and validate them ...
- */
inode = filp->f_dentry->d_inode;
/* Don't allow mandatory locks on files that may be memory mapped
@@ -1576,8 +1558,6 @@
break;
case F_UNLCK:
break;
- case F_SHLCK:
- case F_EXLCK:
default:
error = -EINVAL;
goto out;
diff -urNX dontdiff linux-2.5.21/fs/nfs/file.c linux-2.5.21-flock/fs/nfs/file.c
--- linux-2.5.21/fs/nfs/file.c Sun Jun 2 18:44:51 2002
+++ linux-2.5.21-flock/fs/nfs/file.c Fri Jun 7 06:19:22 2002
@@ -272,7 +272,7 @@
* Not sure whether that would be unique, though, or whether
* that would break in other places.
*/
- if (!fl->fl_owner || (fl->fl_flags & (FL_POSIX|FL_BROKEN)) != FL_POSIX)
+ if (!fl->fl_owner || (fl->fl_flags & FL_POSIX) != FL_POSIX)
return -ENOLCK;
/*
-- 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/
This archive was generated by hypermail 2b29 : Sat Jun 15 2002 - 22:00:14 EST