return false;
}
+bool is_not_user_snap_namespace(librbd::Image* image,
+ const librbd::snap_info_t &snap_info)
+{
+ librbd::snap_namespace_type_t namespace_type;
+ int r = image->snap_get_namespace_type(snap_info.id, &namespace_type);
+ if (r < 0) {
+ return false;
+ }
+ return namespace_type != RBD_SNAP_NAMESPACE_TYPE_USER;
+}
+
} // namespace utils
} // namespace rbd
argument_types::ArgumentModifier mod,
size_t spec_arg_index);
+bool is_not_user_snap_namespace(librbd::Image* image,
+ const librbd::snap_info_t &snap_info);
+
std::string image_id(librbd::Image& image);
std::string mirror_image_state(librbd::mirror_image_state_t mirror_image_state);
continue;
}
+ snap_list.erase(remove_if(snap_list.begin(),
+ snap_list.end(),
+ boost::bind(utils::is_not_user_snap_namespace, &image, _1)),
+ snap_list.end());
+
bool found_from_snap = (from_snapname == nullptr);
std::string last_snap_name;
std::sort(snap_list.begin(), snap_list.end(),
librbd::RBD rbd;
r = do_disk_usage(rbd, io_ctx,
- image_name.empty() ? nullptr: image_name.c_str() ,
+ image_name.empty() ? nullptr: image_name.c_str(),
snap_name.empty() ? nullptr : snap_name.c_str(),
from_snap_name.empty() ? nullptr : from_snap_name.c_str(),
formatter.get());
namespace at = argument_types;
namespace po = boost::program_options;
-static bool is_not_user_snap_namespace(librbd::Image* image,
- const librbd::snap_info_t &snap_info)
-{
- librbd::snap_namespace_type_t namespace_type;
- int r = image->snap_get_namespace_type(snap_info.id, &namespace_type);
- if (r < 0) {
- return false;
- }
- return namespace_type != RBD_SNAP_NAMESPACE_TYPE_USER;
-}
-
int do_list_snaps(librbd::Image& image, Formatter *f, bool all_snaps, librados::Rados& rados)
{
std::vector<librbd::snap_info_t> snaps;
if (!all_snaps) {
snaps.erase(remove_if(snaps.begin(),
- snaps.end(),
- boost::bind(is_not_user_snap_namespace, &image, _1)),
- snaps.end());
+ snaps.end(),
+ boost::bind(utils::is_not_user_snap_namespace, &image, _1)),
+ snaps.end());
}
if (f) {