1 struct closure {
   2         union {
   3                 struct {
   4                         long                    _pad;
   5                         struct task_struct      *p;
   6                         struct closure          *next;
   7                 };
   8                 struct work_struct      w;
   9         };
  10 
  11         closure_fn              *fn;
  12         struct closure          *parent;
  13 
  14         union {
  15                 struct {
  16                         atomic_t                _pad2;
  17                         atomic_t                remaining;
  18                 };
  19 
  20 #define CLOSURE_BLOCK           0
  21 #define CLOSURE_NOQUEUE         1
  22 #define __CLOSURE_WAITING       2
  23 #define __CLOSURE_SLEEPING      3
  24                 unsigned long           flags;
  25         };
  26 };

BcacheWiki: Closures (last edited 2011-06-14 21:40:19 by Kent)