On Fri, Dec 09, 2011 at 02:20:17PM -0500, Eric B Munson wrote: > Currently the library will select the first hugetlbfs mount it finds for a > given page size for usage. This can lead to frustrating failures when root > owns the first mount and a user has a later mount in the list. This patch > makes find_mounts check if a given mount is usable by the current user. > Mounts > that are not usable will be skipped. > > Signed-off-by: Eric B Munson <emun...@mgebm.net> > Cc: Andrew Lutomirski <l...@mit.edu> > --- > hugeutils.c | 26 +++++++++++++++++++++++++- > 1 files changed, 25 insertions(+), 1 deletions(-) > > diff --git a/hugeutils.c b/hugeutils.c > index b28bd0a..5b16a31 100644 > --- a/hugeutils.c > +++ b/hugeutils.c > @@ -37,6 +37,7 @@ > #include <sys/vfs.h> > #include <sys/statfs.h> > #include <sys/types.h> > +#include <sys/stat.h> > #include <sys/mman.h> > #include <sys/file.h> > #include <sys/uio.h> > @@ -607,6 +608,28 @@ void debug_show_page_sizes(void) > hpage_sizes[i].mount); > } > > +static bool hugetlbfs_test_access(const char *path) > +{ > + struct stat stats; > + uid_t uid; > + gid_t gid; > + if (stat(path, &stats)) > + return false; > + > + if (stats.st_mode & S_IRWXO) > + return true; > + > + gid = getegid(); > + if (stats.st_gid == gid && (stats.st_mode & S_IRWXG)) > + return true; > + > + uid = geteuid(); > + if (stats.st_uid == uid && (stats.st_mode & S_IRWXU)) > + return true; > + > + return false; > +}
Couldn't you simplify this logic by using access(2)? -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson ------------------------------------------------------------------------------ Learn Windows Azure Live! Tuesday, Dec 13, 2011 Microsoft is holding a special Learn Windows Azure training event for developers. It will provide a great way to learn Windows Azure and what it provides. You can attend the event by watching it streamed LIVE online. Learn more at http://p.sf.net/sfu/ms-windowsazure _______________________________________________ Libhugetlbfs-devel mailing list Libhugetlbfs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libhugetlbfs-devel