Lines Matching full:on
6 Locking scheme used for directory operations is based on two
10 When taking the i_rwsem on multiple non-directory objects, we
77 (1) if object removal or non-cross-directory rename holds lock on A and
78 attempts to acquire lock on B, A will remain the parent of B until we
79 acquire the lock on B. (Proof: only cross-directory rename can change
82 (2) if cross-directory rename holds the lock on filesystem, order will not
84 renames will be blocked on filesystem lock and we don't start changing
87 (3) locks on non-directory objects are acquired only after locks on
89 (Proof: all operations but renames take lock on at most one
90 non-directory object, except renames, which take locks on source and
93 Now consider the minimal deadlock. Each process is blocked on
96 not contended, since any process blocked on it is not holding any locks.
97 Thus all processes are blocked on ->i_rwsem.
100 waiting on another non-directory lock with a larger address. Therefore
105 blocked on source and it means that it doesn't hold any locks.
110 is blocked on belongs to child of that object due to (1).
124 try to acquire lock on descendent before the lock on ancestor.
139 While this locking scheme works for arbitrary DAGs, it relies on
142 also preserved by all operations (cross-directory rename on a tree that would