2005-12-16 01:31:23 +03:00
/* -*- mode: c; c-basic-offset: 8; -*-
* vim : noexpandtab sw = 8 ts = 8 sts = 0 :
*
* sys . c
*
* OCFS2 cluster sysfs interface
*
* Copyright ( C ) 2005 Oracle . All rights reserved .
*
* This program is free software ; you can redistribute it and / or
* modify it under the terms of the GNU General Public
* License as published by the Free Software Foundation ,
* version 2 of the License .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the GNU
* General Public License for more details .
*
* You should have received a copy of the GNU General Public
* License along with this program ; if not , write to the
* Free Software Foundation , Inc . , 59 Temple Place - Suite 330 ,
* Boston , MA 021110 - 1307 , USA .
*
*/
# include <linux/kernel.h>
# include <linux/module.h>
# include <linux/kobject.h>
# include <linux/sysfs.h>
2007-11-03 02:19:59 +03:00
# include <linux/fs.h>
2005-12-16 01:31:23 +03:00
# include "ocfs2_nodemanager.h"
# include "masklog.h"
# include "sys.h"
2007-11-03 02:19:59 +03:00
static ssize_t version_show ( struct kobject * kobj , struct kobj_attribute * attr ,
char * buf )
2005-12-16 01:31:23 +03:00
{
return snprintf ( buf , PAGE_SIZE , " %u \n " , O2NM_API_VERSION ) ;
}
2007-11-03 02:19:59 +03:00
static struct kobj_attribute attr_version =
2014-03-24 05:30:34 +04:00
__ATTR ( interface_revision , S_IRUGO , version_show , NULL ) ;
2005-12-16 01:31:23 +03:00
static struct attribute * o2cb_attrs [ ] = {
2007-11-03 02:19:59 +03:00
& attr_version . attr ,
2005-12-16 01:31:23 +03:00
NULL ,
} ;
2007-11-03 02:19:59 +03:00
static struct attribute_group o2cb_attr_group = {
. attrs = o2cb_attrs ,
2005-12-16 01:31:23 +03:00
} ;
2007-11-03 02:19:59 +03:00
static struct kset * o2cb_kset ;
2005-12-16 01:31:23 +03:00
void o2cb_sys_shutdown ( void )
{
mlog_sys_shutdown ( ) ;
2007-11-03 02:19:59 +03:00
kset_unregister ( o2cb_kset ) ;
2005-12-16 01:31:23 +03:00
}
int o2cb_sys_init ( void )
{
int ret ;
2008-04-22 22:46:44 +04:00
o2cb_kset = kset_create_and_add ( " o2cb " , NULL , fs_kobj ) ;
2007-11-03 02:19:59 +03:00
if ( ! o2cb_kset )
return - ENOMEM ;
ret = sysfs_create_group ( & o2cb_kset - > kobj , & o2cb_attr_group ) ;
2005-12-16 01:31:23 +03:00
if ( ret )
2007-11-03 02:19:59 +03:00
goto error ;
2005-12-16 01:31:23 +03:00
2007-11-03 02:19:59 +03:00
ret = mlog_sys_init ( o2cb_kset ) ;
2005-12-16 01:31:23 +03:00
if ( ret )
2007-11-03 02:19:59 +03:00
goto error ;
return 0 ;
error :
kset_unregister ( o2cb_kset ) ;
2005-12-16 01:31:23 +03:00
return ret ;
}