On Fri 15-11-19 09:48:44, Tejun Heo wrote:
On Fri, Nov 15, 2019 at 06:47:21PM +0100, Michal Hocko wrote:
s@online@offline@
And reading after myself it turned out to sound differently than I meant. What I wanted to say really is, what is the difference that css_tryget_online really guarantee when the css might go offline right after the call suceeds so more specifically what is the difference between if (css_tryget()) { if (online) DO_SOMETHING } and if (css_tryget_online()) { DO_SOMETHING }
both of them are racy and do not provide any guarantee wrt. online state.
It's about not giving new reference when the object is known to be delted to the user.
This part is clear to me. The failure just says it is already too late to do anything. I just still struggle why the success is telling me much more when the state might change before I can do anything on the object. I could see a usefulness if I've had a guarantee that the object stays online while I hold a $FOO lock but if there is nothing like that then we are just having already too late or potentially too late.
Anyway it's been a hard week and the brain is just going for the weekend so I just might be dense now.
Can you please think more about how file deletions work?
I will try that with a fresh brain next week.