This function was only used in gfs2_tool so it can be moved out of
libgfs2 and merged into gfs2_tool's print_list function. This also
removes four more uses of 'die' from libgfs2.

Signed-off-by: Andrew Price <[email protected]>
---
 gfs2/libgfs2/libgfs2.h |    1 -
 gfs2/libgfs2/misc.c    |   64 ------------------------------------------------
 gfs2/tool/misc.c       |   54 +++++++++++++++++++++++++++++++++++++++-
 3 files changed, 53 insertions(+), 66 deletions(-)

diff --git a/gfs2/libgfs2/libgfs2.h b/gfs2/libgfs2/libgfs2.h
index a89c25c..a25cf7b 100644
--- a/gfs2/libgfs2/libgfs2.h
+++ b/gfs2/libgfs2/libgfs2.h
@@ -630,7 +630,6 @@ extern int dir_exists(const char *dir);
 extern int check_for_gfs2(struct gfs2_sbd *sdp);
 extern void mount_gfs2_meta(struct gfs2_sbd *sdp);
 extern void cleanup_metafs(struct gfs2_sbd *sdp);
-extern char *get_list(void);
 extern char *find_debugfs_mount(void);
 extern char *mp2fsname(char *mp);
 extern char *get_sysfs(char *fsname, char *filename);
diff --git a/gfs2/libgfs2/misc.c b/gfs2/libgfs2/misc.c
index d5ce490..21329f3 100644
--- a/gfs2/libgfs2/misc.c
+++ b/gfs2/libgfs2/misc.c
@@ -267,70 +267,6 @@ int set_sysfs(char *fsname, char *filename, char *val)
        return 0;
 }
 
-/**
- * get_list - Get the list of GFS2 filesystems
- *
- * Returns: a NULL terminated string
- */
-
-#define LIST_SIZE 1048576
-
-char *get_list(void)
-{
-       char path[PATH_MAX];
-       char s_id[PATH_MAX];
-       char *list, *p;
-       int rv, fd, x = 0, total = 0;
-       DIR *d;
-       struct dirent *de;
-
-       list = malloc(LIST_SIZE);
-       if (!list)
-               die("out of memory\n");
-
-       memset(path, 0, PATH_MAX);
-       snprintf(path, PATH_MAX, "%s", SYS_BASE);
-
-       d = opendir(path);
-       if (!d)
-               die("can't open %s: %s\n", SYS_BASE, strerror(errno));
-
-       while ((de = readdir(d))) {
-               if (de->d_name[0] == '.')
-                       continue;
-
-               memset(path, 0, PATH_MAX);
-               snprintf(path, PATH_MAX, "%s/%s/id", SYS_BASE, de->d_name);
-
-               fd = open(path, O_RDONLY);
-               if (fd < 0)
-                       die("can't open %s: %s\n", path, strerror(errno));
-
-               memset(s_id, 0, PATH_MAX);
-
-               rv = read(fd, s_id, sizeof(s_id));
-               if (rv < 0)
-                       die("can't read %s: %s\n", path, strerror(errno));
-
-               close(fd);
-
-               p = strstr(s_id, "\n");
-               if (p)
-                       *p = '\0';
-
-               total += strlen(s_id) + strlen(de->d_name) + 2;
-               if (total > LIST_SIZE)
-                       break;
-
-               x += sprintf(list + x, "%s %s\n", s_id, de->d_name);
-
-       }
-
-       closedir(d);
-
-       return list;
-}
-
 char *find_debugfs_mount(void)
 {
        FILE *file;
diff --git a/gfs2/tool/misc.c b/gfs2/tool/misc.c
index 2e57cd1..f23ec82 100644
--- a/gfs2/tool/misc.c
+++ b/gfs2/tool/misc.c
@@ -362,11 +362,63 @@ print_journals(int argc, char **argv)
  *
  */
 
+#define LIST_SIZE 1048576
+
 void
 print_list(void)
 {
-       char *list = get_list();
+       char path[PATH_MAX];
+       char s_id[PATH_MAX];
+       char *list, *p;
+       int rv, fd, x = 0, total = 0;
+       DIR *d;
+       struct dirent *de;
+
+       list = malloc(LIST_SIZE);
+       if (!list)
+               die("out of memory\n");
+
+       memset(path, 0, PATH_MAX);
+       snprintf(path, PATH_MAX, "%s", SYS_BASE);
+
+       d = opendir(path);
+       if (!d)
+               die("can't open %s: %s\n", SYS_BASE, strerror(errno));
+
+       while ((de = readdir(d))) {
+               if (de->d_name[0] == '.')
+                       continue;
+
+               memset(path, 0, PATH_MAX);
+               snprintf(path, PATH_MAX, "%s/%s/id", SYS_BASE, de->d_name);
+
+               fd = open(path, O_RDONLY);
+               if (fd < 0)
+                       die("can't open %s: %s\n", path, strerror(errno));
+
+               memset(s_id, 0, PATH_MAX);
+
+               rv = read(fd, s_id, sizeof(s_id));
+               if (rv < 0)
+                       die("can't read %s: %s\n", path, strerror(errno));
+
+               close(fd);
+
+               p = strstr(s_id, "\n");
+               if (p)
+                       *p = '\0';
+
+               total += strlen(s_id) + strlen(de->d_name) + 2;
+               if (total > LIST_SIZE)
+                       break;
+
+               x += sprintf(list + x, "%s %s\n", s_id, de->d_name);
+
+       }
+
+       closedir(d);
        printf("%s", list);
+       free(list);
 }
 
 /**
-- 
1.5.6.5

Reply via email to