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 */
  25
  26static inline struct xfs_kobj *
  27to_kobj(struct kobject *kobject)
  28{
  29        return container_of(kobject, struct xfs_kobj, kobject);
  30}
  31
  32static inline void
  33xfs_sysfs_release(struct kobject *kobject)
  34{
  35        struct xfs_kobj *kobj = to_kobj(kobject);
  36        complete(&kobj->complete);
  37}
  38
  39static inline int
  40xfs_sysfs_init(
  41        struct xfs_kobj         *kobj,
  42        struct kobj_type        *ktype,
  43        struct xfs_kobj         *parent_kobj,
  44        const char              *name)
  45{
  46        init_completion(&kobj->complete);
  47        return kobject_init_and_add(&kobj->kobject, ktype,
  48                                    &parent_kobj->kobject, "%s", name);
  49}
  50
  51static inline void
  52xfs_sysfs_del(
  53        struct xfs_kobj *kobj)
  54{
  55        kobject_del(&kobj->kobject);
  56        kobject_put(&kobj->kobject);
  57        wait_for_completion(&kobj->complete);
  58}
  59
  60#endif  /* __XFS_SYSFS_H__ */
  61