linux/fs/xfs/xfs_sysfs.h
<<
>>
Prefs
   1/*
   2 * Copyright (c) 2014 Red Hat, Inc.
   3 * All Rights Reserved.
   4 *
   5 * This program is free software; you can redistribute it and/or
   6 * modify it under the terms of the GNU General Public License as
   7 * published by the Free Software Foundation.
   8 *
   9 * This program is distributed in the hope that it would be useful,
  10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12 * GNU General Public License for more details.
  13 *
  14 * You should have received a copy of the GNU General Public License
  15 * along with this program; if not, write the Free Software Foundation,
  16 * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  17 */
  18
  19#ifndef __XFS_SYSFS_H__
  20#define __XFS_SYSFS_H__
  21
  22extern struct kobj_type xfs_mp_ktype;   /* xfs_mount */
  23extern struct kobj_type xfs_dbg_ktype;  /* debug */
  24extern struct kobj_type xfs_log_ktype;  /* xlog */
  25extern struct kobj_type xfs_stats_ktype;        /* stats */
  26
  27static inline struct xfs_kobj *
  28to_kobj(struct kobject *kobject)
  29{
  30        return container_of(kobject, struct xfs_kobj, kobject);
  31}
  32
  33static inline void
  34xfs_sysfs_release(struct kobject *kobject)
  35{
  36        struct xfs_kobj *kobj = to_kobj(kobject);
  37        complete(&kobj->complete);
  38}
  39
  40static inline int
  41xfs_sysfs_init(
  42        struct xfs_kobj         *kobj,
  43        struct kobj_type        *ktype,
  44        struct xfs_kobj         *parent_kobj,
  45        const char              *name)
  46{
  47        init_completion(&kobj->complete);
  48        return kobject_init_and_add(&kobj->kobject, ktype,
  49                                    &parent_kobj->kobject, "%s", name);
  50}
  51
  52static inline void
  53xfs_sysfs_del(
  54        struct xfs_kobj *kobj)
  55{
  56        kobject_del(&kobj->kobject);
  57        kobject_put(&kobj->kobject);
  58        wait_for_completion(&kobj->complete);
  59}
  60
  61int     xfs_error_sysfs_init(struct xfs_mount *mp);
  62void    xfs_error_sysfs_del(struct xfs_mount *mp);
  63
  64#endif  /* __XFS_SYSFS_H__ */
  65