]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: permit MDS to send writes on full pools 5942/head
authorJohn Spray <john.spray@redhat.com>
Tue, 15 Sep 2015 21:11:20 +0000 (22:11 +0100)
committerJohn Spray <john.spray@redhat.com>
Tue, 15 Sep 2015 21:11:20 +0000 (22:11 +0100)
Same behaviour as the global full flag, for the
per-pool full flag.  The FS was broken by 67de12bf,
which added the pool flag handling.

Fixes: #12971
Signed-off-by: John Spray <john.spray@redhat.com>
src/osd/OSD.cc

index 46514f354c03c87737336fa5daa4529ecb945109..f0ace3f9698dbbb54ff730e44a251ce62ace672e 100644 (file)
@@ -8092,8 +8092,8 @@ void OSD::handle_op(OpRequestRef& op, OSDMapRef& osdmap)
     }
     // pool is full ?
     map<int64_t, epoch_t> &pool_last_map_marked_full = superblock.pool_last_map_marked_full;
-    if (pi->has_flag(pg_pool_t::FLAG_FULL) || 
-       (pool_last_map_marked_full.count(pool) && (m->get_map_epoch() < pool_last_map_marked_full[pool]))) {
+    if ((pi->has_flag(pg_pool_t::FLAG_FULL) ||
+       (pool_last_map_marked_full.count(pool) && (m->get_map_epoch() < pool_last_map_marked_full[pool]))) && !m->get_source().is_mds()) {
       return;
     }