On Wed, 18 Jul 2007 15:56:53 +1000 Nick Piggin <nickpiggin@xxxxxxxxxxxx> wrote:
Andrew Morton wrote:
On Tue, 17 Jul 2007 13:47:32 +0100
David Howells <dhowells@xxxxxxxxxx> wrote:
+ if (type == AFS_LOCK_READ &&
+ vnode->flags & (1 << AFS_VNODE_READLOCKED)) {
Here we use
vnode->flags & (1 << foo)
+ set_bit(AFS_VNODE_LOCKING, &vnode->flags);
and elsewhere we use set_bit(foo, &vnode->flags) and clear_bit()
This is a bit strange. Does the open-coded bit-test have any performance
benefit on any architecture? Not on x86 at least, afaik.
It uses locked operations on x86, but you can use __set_bit instead
(which should always be at least as efficient as the C version).
I said "bit-test". ie: test_bit(). That doesn't use a locked operation.