Index: device-mapper.1.02.27/lib/libdm-deptree.c =================================================================== --- device-mapper.1.02.27.orig/lib/libdm-deptree.c +++ device-mapper.1.02.27/lib/libdm-deptree.c @@ -1007,8 +1007,23 @@ int dm_tree_deactivate_children(struct d /* Refresh open_count */ if (!_info_by_dev(dinfo->major, dinfo->minor, 1, &info) || - !info.exists || info.open_count) - continue; + !info.exists || info.open_count) { + int idx = 0; + while (idx++ < 10) { + struct timespec ts = {0, 500000000}; + log_error("Unable to deact, open_count is %" PRIu32, info.open_count); + if (_info_by_dev(dinfo->major, dinfo->minor, 1, &info) && + info.exists && !info.open_count) { + break; + } + nanosleep(&ts, NULL); + } + if (info.open_count) { + log_error("give up on open_count"); + continue; + } + } + if (!_deactivate_node(name, info.major, info.minor)) { log_error("Unable to deactivate %s (%" PRIu32