ceph: stop sending FLUSHSNAPs when we hit a dirty capsnap
authorSage Weil <sage@newdream.net>
Tue, 14 Sep 2010 22:50:59 +0000 (15:50 -0700)
committerSage Weil <sage@newdream.net>
Tue, 14 Sep 2010 22:50:59 +0000 (15:50 -0700)
Stop sending FLUSHSNAP messages when we hit a capsnap that has dirty_pages
or is still writing.  We'll send the newer capsnaps only after the older
ones complete.

Signed-off-by: Sage Weil <sage@newdream.net>
fs/ceph/caps.c

index a2069b6680aed83eb0be0af7c584b4a619ae239a..9fbe9019155c196e53dbc82732cfe620b5f39596 100644 (file)
@@ -1227,7 +1227,7 @@ retry:
                 * pages to be written out.
                 */
                if (capsnap->dirty_pages || capsnap->writing)
-                       continue;
+                       break;
 
                /*
                 * if cap writeback already occurred, we should have dropped
@@ -1276,8 +1276,8 @@ retry:
                              &session->s_cap_snaps_flushing);
                spin_unlock(&inode->i_lock);
 
-               dout("flush_snaps %p cap_snap %p follows %lld size %llu\n",
-                    inode, capsnap, next_follows, capsnap->size);
+               dout("flush_snaps %p cap_snap %p follows %lld tid %llu\n",
+                    inode, capsnap, capsnap->follows, capsnap->flush_tid);
                send_cap_msg(session, ceph_vino(inode).ino, 0,
                             CEPH_CAP_OP_FLUSHSNAP, capsnap->issued, 0,
                             capsnap->dirty, 0, capsnap->flush_tid, 0, mseq,