• Al Viro's avatar
    orangefs: have ..._clean_interrupted_...() wait for copy to/from daemon · 05a50a5b
    Al Viro authored
    * turn all those list_del(&op->list) into list_del_init()
    * don't pick ops that are already given up in control device
      ->read()/->write_iter().
    * have orangefs_clean_interrupted_operation() notice if op is currently
      being copied to/from daemon (by said ->read()/->write_iter()) and
      wait for that to finish.
    * when we are done copying to/from daemon and find that it had been
      given up while we were doing that, wake the waiting ..._clean_interrupted_...
    
    As the result, we are guaranteed that orangefs_clean_interrupted_operation(op)
    doesn't return until nobody else can see op.  Moreover, we don't need to play
    with op refcounts anymore.
    Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: default avatarMike Marshall <hubcap@omnibond.com>
    05a50a5b
orangefs-kernel.h 19.8 KB