summaryrefslogtreecommitdiffstats
path: root/Documentation/filesystems
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/filesystems')
-rw-r--r--Documentation/filesystems/Locking14
1 files changed, 0 insertions, 14 deletions
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking
index dac435575384..204dd3ea36bb 100644
--- a/Documentation/filesystems/Locking
+++ b/Documentation/filesystems/Locking
@@ -361,8 +361,6 @@ so fl_release_private called on a lease should not block.
361 361
362----------------------- lock_manager_operations --------------------------- 362----------------------- lock_manager_operations ---------------------------
363prototypes: 363prototypes:
364 int (*lm_compare_owner)(struct file_lock *, struct file_lock *);
365 unsigned long (*lm_owner_key)(struct file_lock *);
366 void (*lm_notify)(struct file_lock *); /* unblock callback */ 364 void (*lm_notify)(struct file_lock *); /* unblock callback */
367 int (*lm_grant)(struct file_lock *, struct file_lock *, int); 365 int (*lm_grant)(struct file_lock *, struct file_lock *, int);
368 void (*lm_break)(struct file_lock *); /* break_lease callback */ 366 void (*lm_break)(struct file_lock *); /* break_lease callback */
@@ -371,23 +369,11 @@ prototypes:
371locking rules: 369locking rules:
372 370
373 inode->i_lock blocked_lock_lock may block 371 inode->i_lock blocked_lock_lock may block
374lm_compare_owner: yes[1] maybe no
375lm_owner_key yes[1] yes no
376lm_notify: yes yes no 372lm_notify: yes yes no
377lm_grant: no no no 373lm_grant: no no no
378lm_break: yes no no 374lm_break: yes no no
379lm_change yes no no 375lm_change yes no no
380 376
381[1]: ->lm_compare_owner and ->lm_owner_key are generally called with
382*an* inode->i_lock held. It may not be the i_lock of the inode
383associated with either file_lock argument! This is the case with deadlock
384detection, since the code has to chase down the owners of locks that may
385be entirely unrelated to the one on which the lock is being acquired.
386For deadlock detection however, the blocked_lock_lock is also held. The
387fact that these locks are held ensures that the file_locks do not
388disappear out from under you while doing the comparison or generating an
389owner key.
390
391--------------------------- buffer_head ----------------------------------- 377--------------------------- buffer_head -----------------------------------
392prototypes: 378prototypes:
393 void (*b_end_io)(struct buffer_head *bh, int uptodate); 379 void (*b_end_io)(struct buffer_head *bh, int uptodate);