summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorDavid Sterba <dsterba@suse.cz>2011-05-02 15:29:25 +0200
committerDavid Sterba <dsterba@suse.cz>2011-05-02 15:29:25 +0200
commit8cc33e5c19bf01c7617608669be8c1b4f663eb2f (patch)
tree763f0db612327ccaea05a76139fd02ef6047d878 /fs
parentb3b4aa74b58bded927f579fff787fb6fa1c0393c (diff)
downloadlinux-8cc33e5c19bf01c7617608669be8c1b4f663eb2f.tar.gz
linux-8cc33e5c19bf01c7617608669be8c1b4f663eb2f.tar.bz2
linux-8cc33e5c19bf01c7617608669be8c1b4f663eb2f.zip
btrfs: Document a mutex lock/unlock sequence
Diffstat (limited to 'fs')
-rw-r--r--fs/btrfs/extent-tree.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
index a160f11465f8..fba1348cb2a0 100644
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
@@ -756,6 +756,10 @@ again:
btrfs_release_path(path);
+ /*
+ * Mutex was contended, block until it's released and try
+ * again
+ */
mutex_lock(&head->mutex);
mutex_unlock(&head->mutex);
btrfs_put_delayed_ref(&head->node);
@@ -2297,6 +2301,10 @@ again:
atomic_inc(&ref->refs);
spin_unlock(&delayed_refs->lock);
+ /*
+ * Mutex was contended, block until it's
+ * released and try again
+ */
mutex_lock(&head->mutex);
mutex_unlock(&head->mutex);
@@ -2363,6 +2371,10 @@ static noinline int check_delayed_ref(struct btrfs_trans_handle *trans,
btrfs_release_path(path);
+ /*
+ * Mutex was contended, block until it's released and let
+ * caller try again
+ */
mutex_lock(&head->mutex);
mutex_unlock(&head->mutex);
btrfs_put_delayed_ref(&head->node);