On Sat, 10 Dec 2011, David Gibson wrote: > 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 >
It sure would, thanks for pointing it out. Eric
signature.asc
Description: Digital signature
------------------------------------------------------------------------------ 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