Hi Greg,

while reviewing the 9p code base for further optimizations, I stumbled over 
the 'rename_lock' introduced by 02cb7f3a2 and wondered about what exactly it 
shall protect?

As far as I understand it, the original intention at introduction 
(aforementioned 02cb7f3a2) was to protect

        1. fidp->path variable

        and

        2.  *ANY* filesystem path from being renamed during the *entire* 
duration
            of some concurrent 9p operation.

So because of (2.) it was introduced as a global lock. But (2.) is a dead end 
approach anyway, isn't it?

Therefore my question: rename_lock is currently a global lock. Wouldn't it 
make more sense to transform it from a global lock from struct V9fsState -> 
struct V9fsFidState and just let it protect that fidp->path variable locally 
there?

Best regards,
Christian Schoenebeck



Reply via email to