On Sat, Jun 12, 2021 at 09:08:05AM +0800, Ian Kent wrote: > But if I change to take the read lock to ensure there's no operation > in progress for the revision check I would need the dget_parent(), yes? WTF for? ->d_parent can change *ONLY* when ->d_lock is held on all dentries involved (including old and new parents). And it very definitely does *not* change for negative dentries. I mean, look at the very beginning of __d_move().