On Tue, Apr 07, 2009 at 12:45:52PM +0100, Eric B Munson wrote: > This patch separates the hugetlbfs mount point collection from the > printing to pave the wave for a check in mount_dir to see if a > specified directory is already mounted. > > Signed-off-by: Eric B Munson <ebmun...@us.ibm.com> > --- > hugeadm.c | 41 +++++++++++++++++++++++++++++------------ > 1 files changed, 29 insertions(+), 12 deletions(-) > > diff --git a/hugeadm.c b/hugeadm.c > index 22f47a4..24a2d2e 100644 > --- a/hugeadm.c > +++ b/hugeadm.c > @@ -181,11 +181,16 @@ void print_mounts(struct mount_list *current, int > longest) > } > } > > -void mounts_list_all(void) > +/* collect_active_mounts returns a list of active hugetlbfs > + * mount points, and, if longest is not NULL, the number of > + * characters in the longest mount point to ease output > + * formatting. Caller is expected to free the list of mounts. > + */
Kernel comment style is normal /* * collect_active_mounts...... * .... */ i.e. first line is /* only > +struct mount_list *collect_active_mounts(int *longest) > { > FILE *mounts; > struct mount_list *list, *current, *previous = NULL; > - int length, longest = MIN_COL; > + int length; > > /* First try /proc/mounts, then /etc/mtab */ > mounts = setmntent(PROCMOUNTS, "r"); > @@ -209,8 +214,8 @@ void mounts_list_all(void) > while (getmntent_r(mounts, &(current->entry), current->data, > MAX_SIZE_MNTENT)) { > if (strcasecmp(current->entry.mnt_type, FS_NAME) == 0) { > length = strlen(current->entry.mnt_dir); > - if (length > longest) > - longest = length; > + if (longest && length > *longest) > + *longest = length; > > current->next = malloc(sizeof(struct mount_list)); > if (!current->next) { > @@ -228,16 +233,28 @@ void mounts_list_all(void) > if (previous) { > free(previous->next); > previous->next = NULL; > - print_mounts(list, longest); > - } else { > - /* No hugetlbfs mounts were found */ > - printf("No hugetlbfs mount point found.\n"); > + return list; > } > + return NULL; > +} > > - current = list; > - while (current) { > - previous = current; > - current = current->next; > +void mounts_list_all(void) > +{ > + struct mount_list *list, *previous; > + int longest = MIN_COL; > + > + list = collect_active_mounts(&longest); > + > + if (!list) { > + ERROR("No hugetlbfs mount points found\n"); > + return; > + } > + > + print_mounts(list, longest); > + > + while (list) { > + previous = list; > + list = list->next; > free(previous); > } > } Otherwise Acked-by: Mel Gorman <m...@csn.ul.ie> -- Mel Gorman Part-time Phd Student Linux Technology Center University of Limerick IBM Dublin Software Lab ------------------------------------------------------------------------------ This SF.net email is sponsored by: High Quality Requirements in a Collaborative Environment. Download a free trial of Rational Requirements Composer Now! http://p.sf.net/sfu/www-ibm-com _______________________________________________ Libhugetlbfs-devel mailing list Libhugetlbfs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libhugetlbfs-devel