static int selinux_genfs_get_sid ( struct dentry * dentry , u16 tclass , u16 flags , u32 * sid ) {
 int rc ;
 struct super_block * sb = dentry -> d_sb ;
 char * buffer , * path ;
 buffer = ( char * ) __get_free_page ( GFP_KERNEL ) ;
 if ( ! buffer ) return - ENOMEM ;
 path = dentry_path_raw ( dentry , buffer , PAGE_SIZE ) ;
 if ( IS_ERR ( path ) ) rc = PTR_ERR ( path ) ;
 else {
 if ( flags & SE_SBPROC ) {
 while ( path [ 1 ] >= '0' && path [ 1 ] <= '9' ) {
 path [ 1 ] = '/' ;
 path ++ ;
 }
 }
 rc = security_genfs_sid ( sb -> s_type -> name , path , tclass , sid ) ;
 }
 free_page ( ( unsigned long ) buffer ) ;
 return rc ;
 }
static int selinux_genfs_get_sid ( struct dentry * dentry , u16 tclass , u16 flags , u32 * sid ) {
 int rc ;
 struct super_block * sb = dentry -> d_sb ;
 char * buffer , * path ;
 buffer = ( char * ) __get_free_page ( GFP_KERNEL ) ;
 if ( ! buffer ) return - ENOMEM ;
 path = dentry_path_raw ( dentry , buffer , PAGE_SIZE ) ;
 if ( IS_ERR ( path ) ) rc = PTR_ERR ( path ) ;
 else {
 if ( flags & SE_SBPROC ) {
 while ( path [ 1 ] >= '0' && path [ 1 ] <= '9' ) {
 path [ 1 ] = '/' ;
 path ++ ;
 }
 }
 rc = security_genfs_sid ( sb -> s_type -> name , path , tclass , sid ) ;
 }
 free_page ( ( unsigned long ) buffer ) ;
 return rc ;
 }