Re: [PATCH] xfs: Correctly invert xfs_buftarg LRU isolation logic
From: Vratislav Bendel
Date: Mon Mar 05 2018 - 05:19:55 EST
(In response to Luis' comment:)
> Can you add a respective Fixes: tag?
It was apparently present since LRU was added to xfs buffer cache via:
commit 430cbeb86fdcbbdabea7d4aa65307de8de425350
[xfs: add a lru to the XFS buffer cache]
But I wouldn't say this patch "fixes" that commit.
What do you think? Should a fixes tag be added in this case?
> Also what effects are observed by
> the user when this happens on the kernel log?
I haven't spotted any differences visible to user, nor in the kernel log.
(In response to Brian's comment:)
>> However, as per documentation, atomic_add_unless() returns _zero_
>> if the atomic value was originally equal to the specified *unsless* value.
>>
> Nit: unless
Thanks very much for feedback. Since it's my very first upstream
commit-proposal,
I expected that some polish would be needed.
> It might be worth pointing out in the commit log that currently isolated
> buffers end up right back on the LRU once they are released, because
> ->b_lru_ref remains elevated. Therefore, this patch essentially fixes
> that circuitous route by leaving them on the LRU as originally intended.
> Otherwise this looks Ok to me:
So the final commit message could be:
~~~
Currently the xfs_buftarg_isolate() is causing an xfs_buffer
with zero b_lru_ref, to take another trip around LRU, while
isolating buffers with non-zero b_lru_ref.
Additionally those isolated buffers end up right back on the LRU
once they are released, because ->b_lru_ref remains elevated.
Fix that circuitous route by leaving them on the LRU
as originally intended.
>> Signed-off-by: Vratislav Bendel <vbendel@xxxxxxxxxx>
> Reviewed-by: Brian Foster <bfoster@xxxxxxxxxx>
> ---