summaryrefslogtreecommitdiff
path: root/src/systemctl/systemctl.c
diff options
context:
space:
mode:
authorFranck Bui <fbui@suse.com>2016-04-20 03:18:17 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2016-04-19 21:18:17 -0400
commit409472cb8c072791dee8958af9349ee2276b8f09 (patch)
treee4b58aeedc7411ea98c52ecbf495b4432814c833 /src/systemctl/systemctl.c
parent0c1792efe422622c3c8a11b70a722147304da4cb (diff)
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.
Diffstat (limited to 'src/systemctl/systemctl.c')
-rw-r--r--src/systemctl/systemctl.c8
1 files changed, 7 insertions, 1 deletions
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;