aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ceph/snap.c
diff options
context:
space:
mode:
authorSage Weil <sage@newdream.net>2010-09-17 11:03:08 -0400
committerSage Weil <sage@newdream.net>2010-09-17 11:03:08 -0400
commite835124c2be289515b918f2688ced4249e2de566 (patch)
tree1bf9bc86a2d1c3e9508dc304830a3bb42ad7de9b /fs/ceph/snap.c
parentae00d4f37f4df56821331deb1028748110dd6dc9 (diff)
ceph: only send one flushsnap per cap_snap per mds session
Sending multiple flushsnap messages is problematic because we ignore the response if the tid doesn't match, and the server may only respond to each one once. It's also a waste. So, skip cap_snaps that are already on the flushing list, unless the caller tells us to resend (because we are reconnecting). Signed-off-by: Sage Weil <sage@newdream.net>
Diffstat (limited to 'fs/ceph/snap.c')
-rw-r--r--fs/ceph/snap.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/ceph/snap.c b/fs/ceph/snap.c
index 9e6eef14b7df..190b6c4a6f2b 100644
--- a/fs/ceph/snap.c
+++ b/fs/ceph/snap.c
@@ -717,7 +717,7 @@ static void flush_snaps(struct ceph_mds_client *mdsc)
717 igrab(inode); 717 igrab(inode);
718 spin_unlock(&mdsc->snap_flush_lock); 718 spin_unlock(&mdsc->snap_flush_lock);
719 spin_lock(&inode->i_lock); 719 spin_lock(&inode->i_lock);
720 __ceph_flush_snaps(ci, &session); 720 __ceph_flush_snaps(ci, &session, 0);
721 spin_unlock(&inode->i_lock); 721 spin_unlock(&inode->i_lock);
722 iput(inode); 722 iput(inode);
723 spin_lock(&mdsc->snap_flush_lock); 723 spin_lock(&mdsc->snap_flush_lock);