xfs
[Top] [All Lists]

Re: [PATCH] [LIBXCMD]: Move error messages to appropriate places.

To: Arkadiusz Miśkiewicz <arekm@xxxxxxxx>
Subject: Re: [PATCH] [LIBXCMD]: Move error messages to appropriate places.
From: Donald Douwsma <ddouwsma@xxxxxxxxxxxxxx>
Date: Fri, 30 Jan 2009 01:29:06 +1100
Cc: xfs@xxxxxxxxxxx
In-reply-to: <1233167051-14711-1-git-send-email-arekm@xxxxxxxx>
References: <1233167051-14711-1-git-send-email-arekm@xxxxxxxx>
User-agent: Thunderbird 2.0.0.19 (X11/20090105)
Arkadiusz Miśkiewicz wrote:
Replace raw perror() with proper message in
fs_table_initialise_mounts().

Replace raw perror() with proper message and move it from
fs_mount_point_from_path() to fs_table_initialise_projects() where this
message has meaning.

I like your change, it makes things clearer.

But does this particular error actually help people? I've seen it a few times
when testing quota code in the past. It's only used when reading in projects,
and causes errors to be displayed even when issuing non project commands.

$ sudo bash -c "echo 10:/var/nonexistantdir >> /etc/projects
$ xfs_quota -c print
/var/nonexistantdir: No such file or directory
Filesystem          Pathname
/home               /dev/sda8

I'd be tempted to remove this error, and add error checking code to the project 
specific
commands that walk tree's.

Unless there's some corner case I'm missing, What do you think?

Don


Signed-off-by: Arkadiusz Miśkiewicz <arekm@xxxxxxxx>
---
 libxcmd/paths.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/libxcmd/paths.c b/libxcmd/paths.c
index facea06..6c36b79 100644
--- a/libxcmd/paths.c
+++ b/libxcmd/paths.c
@@ -248,7 +248,8 @@ fs_table_initialise_mounts(
        dir = fsname = fslog = fsrt = NULL;
if ((count = getmntinfo(&stats, 0)) < 0) {
-               perror("getmntinfo");
+               fprintf(stderr, _("%s: getmntinfo() failed: %s\n"),
+                               progname, strerror(errno));
                return 0;
        }
@@ -298,7 +299,6 @@ fs_mount_point_from_path(
        struct stat64   s;
if (stat64(dir, &s) < 0) {
-               perror(dir);
                return NULL;
        }
@@ -327,8 +327,11 @@ fs_table_initialise_projects(
        while ((path = getprpathent()) != NULL) {
                if (project && prid != path->pp_prid)
                        continue;
-               if ((fs = fs_mount_point_from_path(path->pp_pathname)) == NULL)
+               if ((fs = fs_mount_point_from_path(path->pp_pathname)) == NULL) 
{
+                       fprintf(stderr, _("%s: cannot find mount point for path 
`%s': %s\n"),
+                                       progname, path->pp_pathname, 
strerror(errno));
                        continue;
+               }
                found = 1;
                dir = strdup(path->pp_pathname);
                fsname = strdup(fs->fs_name);


<Prev in Thread] Current Thread [Next in Thread>