From 409472cb8c072791dee8958af9349ee2276b8f09 Mon Sep 17 00:00:00 2001 From: Franck Bui Date: Wed, 20 Apr 2016 03:18:17 +0200 Subject: 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 ebc962656cee33e3e8395f456a8208c3ca41969c. --- src/systemctl/systemctl.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index 115c00ea9c..059e985463 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -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; -- cgit v1.2.3-54-g00ecf