systemctl: hide "following" units if '--all' is not passed (#2967)

No need to dump all the redundant device units on the user, just because he
specified that he wants to see units of a specific state.

This was broken by commit ebc962656c.
This commit is contained in:
Franck Bui 2016-04-20 03:18:17 +02:00 committed by Zbigniew Jędrzejewski-Szmek
parent 0c1792efe4
commit 409472cb8c

View file

@ -341,6 +341,12 @@ static bool output_show_unit(const UnitInfo *u, char **patterns) {
if (arg_all)
return true;
/* Note that '--all' is not purely a state filter, but also a
* filter that hides units that "follow" other units (which is
* used for device units that appear under different names). */
if (!isempty(u->following))
return false;
if (!strv_isempty(arg_states))
return true;
@ -349,7 +355,7 @@ static bool output_show_unit(const UnitInfo *u, char **patterns) {
if (u->job_id > 0)
return true;
if (streq(u->active_state, "inactive") || u->following[0])
if (streq(u->active_state, "inactive"))
return false;
return true;