|
@@ -627,7 +627,7 @@ retry:
|
|
if (fmode >= 0)
|
|
if (fmode >= 0)
|
|
__ceph_get_fmode(ci, fmode);
|
|
__ceph_get_fmode(ci, fmode);
|
|
spin_unlock(&inode->i_lock);
|
|
spin_unlock(&inode->i_lock);
|
|
- wake_up(&ci->i_cap_wq);
|
|
|
|
|
|
+ wake_up_all(&ci->i_cap_wq);
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1181,7 +1181,7 @@ static int __send_cap(struct ceph_mds_client *mdsc, struct ceph_cap *cap,
|
|
}
|
|
}
|
|
|
|
|
|
if (wake)
|
|
if (wake)
|
|
- wake_up(&ci->i_cap_wq);
|
|
|
|
|
|
+ wake_up_all(&ci->i_cap_wq);
|
|
|
|
|
|
return delayed;
|
|
return delayed;
|
|
}
|
|
}
|
|
@@ -2153,7 +2153,7 @@ void ceph_put_cap_refs(struct ceph_inode_info *ci, int had)
|
|
else if (flushsnaps)
|
|
else if (flushsnaps)
|
|
ceph_flush_snaps(ci);
|
|
ceph_flush_snaps(ci);
|
|
if (wake)
|
|
if (wake)
|
|
- wake_up(&ci->i_cap_wq);
|
|
|
|
|
|
+ wake_up_all(&ci->i_cap_wq);
|
|
if (put)
|
|
if (put)
|
|
iput(inode);
|
|
iput(inode);
|
|
}
|
|
}
|
|
@@ -2229,7 +2229,7 @@ void ceph_put_wrbuffer_cap_refs(struct ceph_inode_info *ci, int nr,
|
|
iput(inode);
|
|
iput(inode);
|
|
} else if (complete_capsnap) {
|
|
} else if (complete_capsnap) {
|
|
ceph_flush_snaps(ci);
|
|
ceph_flush_snaps(ci);
|
|
- wake_up(&ci->i_cap_wq);
|
|
|
|
|
|
+ wake_up_all(&ci->i_cap_wq);
|
|
}
|
|
}
|
|
if (drop_capsnap)
|
|
if (drop_capsnap)
|
|
iput(inode);
|
|
iput(inode);
|
|
@@ -2405,7 +2405,7 @@ static void handle_cap_grant(struct inode *inode, struct ceph_mds_caps *grant,
|
|
if (queue_invalidate)
|
|
if (queue_invalidate)
|
|
ceph_queue_invalidate(inode);
|
|
ceph_queue_invalidate(inode);
|
|
if (wake)
|
|
if (wake)
|
|
- wake_up(&ci->i_cap_wq);
|
|
|
|
|
|
+ wake_up_all(&ci->i_cap_wq);
|
|
|
|
|
|
if (check_caps == 1)
|
|
if (check_caps == 1)
|
|
ceph_check_caps(ci, CHECK_CAPS_NODELAY|CHECK_CAPS_AUTHONLY,
|
|
ceph_check_caps(ci, CHECK_CAPS_NODELAY|CHECK_CAPS_AUTHONLY,
|
|
@@ -2460,7 +2460,7 @@ static void handle_cap_flush_ack(struct inode *inode, u64 flush_tid,
|
|
struct ceph_inode_info,
|
|
struct ceph_inode_info,
|
|
i_flushing_item)->vfs_inode);
|
|
i_flushing_item)->vfs_inode);
|
|
mdsc->num_cap_flushing--;
|
|
mdsc->num_cap_flushing--;
|
|
- wake_up(&mdsc->cap_flushing_wq);
|
|
|
|
|
|
+ wake_up_all(&mdsc->cap_flushing_wq);
|
|
dout(" inode %p now !flushing\n", inode);
|
|
dout(" inode %p now !flushing\n", inode);
|
|
|
|
|
|
if (ci->i_dirty_caps == 0) {
|
|
if (ci->i_dirty_caps == 0) {
|
|
@@ -2472,7 +2472,7 @@ static void handle_cap_flush_ack(struct inode *inode, u64 flush_tid,
|
|
}
|
|
}
|
|
}
|
|
}
|
|
spin_unlock(&mdsc->cap_dirty_lock);
|
|
spin_unlock(&mdsc->cap_dirty_lock);
|
|
- wake_up(&ci->i_cap_wq);
|
|
|
|
|
|
+ wake_up_all(&ci->i_cap_wq);
|
|
|
|
|
|
out:
|
|
out:
|
|
spin_unlock(&inode->i_lock);
|
|
spin_unlock(&inode->i_lock);
|