On Tue, Apr 07, 2009 at 12:45:53PM +0100, Eric B Munson wrote: > Currently hugeadm will happily remount hugetlbfs to the same directory > if --create-*-mounts is specified more than once with the same arguments. > This is a problem because the newest mount of a directory will mask the > previous one(s) causing confusion when applications attempt tp share > segements. This patch makes all the --create-*-mounts switches check > to see if the requested directory is already mounted and if so skip > the mount request. > > Signed-off-by: Eric B Munson <ebmun...@us.ibm.com> > --- > Changes from V3: > Separate the mount point collection logic and check into two patches > Rename check_mount to check_if_already_mounted > > Changes from V2: > Removed extra check of list pointer from mount_dir > > Changes from V1: > Free list of mounts after mounted check fails > > hugeadm.c | 30 ++++++++++++++++++++++++++++++ > 1 files changed, 30 insertions(+), 0 deletions(-) > > diff --git a/hugeadm.c b/hugeadm.c > index 24a2d2e..d450703 100644 > --- a/hugeadm.c > +++ b/hugeadm.c > @@ -332,12 +332,42 @@ int ensure_dir(char *path, mode_t mode, uid_t uid, > gid_t gid) > return 0; > } > > +int check_if_already_mounted(struct mount_list *list, char *path) > +{ > + while (list) { > + if (!strcmp(list->entry.mnt_dir, path)) > + return 1; > + list = list->next; > + } > + return 0; > +} > + > int mount_dir(char *path, char *options, mode_t mode, uid_t uid, gid_t gid) > { > struct passwd *pwd; > struct group *grp; > struct mntent entry; > FILE *mounts; > + struct mount_list *list, *previous; > + > + list = collect_active_mounts(NULL); > + > + if (list && check_if_already_mounted(list, path)) { > + WARNING("Directory %s is already mounted.\n", path); > + > + while (list) { > + previous = list; > + list = list->next; > + free(previous); > + } > + return 0; > + } > + > + while (list) { > + previous = list; > + list = list->next; > + free(previous); > + } > > if (opt_dry_run) { > pwd = getpwuid(uid);
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