On 1/15/20 10:16 AM, David Laight wrote:
From: linux-kernel-owner@vger.kernel.org linux-kernel-owner@vger.kernel.org On Behalf Of Waiman Long
Sent: 15 January 2020 14:27
...
if ((wstate == WRITER_HANDOFF) &&
(rwsem_spin_on_owner(sem, 0) == OWNER_NULL))
rwsem_spin_on_owner(sem, RWSEM_NONSPINNABLE) == OWNER_NULL)
Nit: the inner braces in the first half of the conditional aren't required either.
I typically over-parenthesize the code to make it easier to read as we don't need to think too much about operator precedence to see if it is doing the right thing.
The problem is it actually makes it harder to read. It is difficult for the 'mark 1 eyeball' to follow lots of sets of brackets. Since == (etc) are the lowest priority operators (apart from ?:) they never need ().
David
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)
It depends. I find it hard to read an expression with "&" and "&&" without parentheses. Anyway, I will admit that the above code is inconsistent in term of how parentheses are used. So I will change that.
Cheers, Longman