summaryrefslogtreecommitdiff
path: root/fs/ceph/file.c
diff options
context:
space:
mode:
authorYehuda Sadeh <yehuda@hq.newdream.net>2010-07-28 00:11:08 +0400
committerSage Weil <sage@newdream.net>2010-07-28 00:11:17 +0400
commit03066f23452ff088ad8e2c8acdf4443043f35b51 (patch)
tree37f03df4e28de87339cec3b88e479073c8cee958 /fs/ceph/file.c
parent25848b3ec681c7018e3746dd850c1e8ed0a3dd6b (diff)
downloadlinux-03066f23452ff088ad8e2c8acdf4443043f35b51.tar.xz
ceph: use complete_all and wake_up_all
This fixes an issue triggered by running concurrent syncs. One of the syncs would go through while the other would just hang indefinitely. In any case, we never actually want to wake a single waiter, so the *_all functions should be used. Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net> Signed-off-by: Sage Weil <sage@newdream.net>
Diffstat (limited to 'fs/ceph/file.c')
-rw-r--r--fs/ceph/file.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/ceph/file.c b/fs/ceph/file.c
index 6251a1574b94..7c08698fad3e 100644
--- a/fs/ceph/file.c
+++ b/fs/ceph/file.c
@@ -265,7 +265,7 @@ int ceph_release(struct inode *inode, struct file *file)
kmem_cache_free(ceph_file_cachep, cf);
/* wake up anyone waiting for caps on this inode */
- wake_up(&ci->i_cap_wq);
+ wake_up_all(&ci->i_cap_wq);
return 0;
}