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 <[email protected]>
> ---
> 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 <[email protected]>
--
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/libhugetlbfs-devel