diff options
author | Sage Weil <sage@newdream.net> | 2010-09-17 11:03:08 -0400 |
---|---|---|
committer | Sage Weil <sage@newdream.net> | 2010-09-17 11:03:08 -0400 |
commit | e835124c2be289515b918f2688ced4249e2de566 (patch) | |
tree | 1bf9bc86a2d1c3e9508dc304830a3bb42ad7de9b /fs/ceph/snap.c | |
parent | ae00d4f37f4df56821331deb1028748110dd6dc9 (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.c | 2 |
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); |