From: Greg Farnum Date: Mon, 2 Dec 2013 23:11:54 +0000 (-0800) Subject: OSDMonitor: return EEXIST if users try to do a PG merge X-Git-Tag: v0.73~1^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=26c00c5b2b0e88d0ec7afb876f6cef168107da32;p=ceph.git OSDMonitor: return EEXIST if users try to do a PG merge This was returning a machine-code success if users tried to merge, and was erroneously (but harmlessly) increasing the pool's last_change marker even though it wasn't actually changing anything. Backport: emperor Signed-off-by: Greg Farnum --- diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index 058a5cfeef3a..7cc2f0d82b69 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -2802,6 +2802,10 @@ int OSDMonitor::prepare_command_pool_set(map &cmdmap, } if (n <= (int)p.get_pg_num()) { ss << "specified pg_num " << n << " <= current " << p.get_pg_num(); + if (n < (int)p.get_pg_num()) + return -EEXIST; + else + return 0; } else { for(set::iterator i = mon->pgmon()->pg_map.creating_pgs.begin(); i != mon->pgmon()->pg_map.creating_pgs.end();