df plugin: Check ignorelists before stat'ing the filesystem.
authorFlorian Forster <octo@huhu.verplant.org>
Thu, 20 Aug 2009 12:10:37 +0000 (14:10 +0200)
committerFlorian Forster <octo@huhu.verplant.org>
Sat, 22 Aug 2009 00:21:06 +0000 (02:21 +0200)
 → See also: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=542859

src/df.c

index 38079d8..2c59b01 100644 (file)
--- a/src/df.c
+++ b/src/df.c
@@ -155,22 +155,6 @@ static int df_read (void)
 
        for (mnt_ptr = mnt_list; mnt_ptr != NULL; mnt_ptr = mnt_ptr->next)
        {
-               if (STATANYFS (mnt_ptr->dir, &statbuf) < 0)
-               {
-                       char errbuf[1024];
-                       ERROR ("statv?fs failed: %s",
-                                       sstrerror (errno, errbuf,
-                                               sizeof (errbuf)));
-                       continue;
-               }
-
-               if (!statbuf.f_blocks)
-                       continue;
-
-               blocksize = BLOCKSIZE(statbuf);
-               df_free = statbuf.f_bfree * blocksize;
-               df_used = (statbuf.f_blocks - statbuf.f_bfree) * blocksize;
-
                if (strcmp (mnt_ptr->dir, "/") == 0)
                {
                        sstrncpy (mnt_name, "root", sizeof (mnt_name));
@@ -197,6 +181,22 @@ static int df_read (void)
                if (ignorelist_match (il_fstype, mnt_ptr->type))
                        continue;
 
+               if (STATANYFS (mnt_ptr->dir, &statbuf) < 0)
+               {
+                       char errbuf[1024];
+                       ERROR ("statv?fs failed: %s",
+                                       sstrerror (errno, errbuf,
+                                               sizeof (errbuf)));
+                       continue;
+               }
+
+               if (!statbuf.f_blocks)
+                       continue;
+
+               blocksize = BLOCKSIZE(statbuf);
+               df_free = statbuf.f_bfree * blocksize;
+               df_used = (statbuf.f_blocks - statbuf.f_bfree) * blocksize;
+
                df_submit (mnt_name, df_used, df_free);
        }