LCOV - code coverage report
Current view: top level - fs/xfs - xfs_sysfs.h (source / functions) Hit Total Coverage
Test: fstests of 6.5.0-rc4-xfsx @ Mon Jul 31 20:08:34 PDT 2023 Lines: 17 18 94.4 %
Date: 2023-07-31 20:08:34 Functions: 3 3 100.0 %

          Line data    Source code
       1             : // SPDX-License-Identifier: GPL-2.0
       2             : /*
       3             :  * Copyright (c) 2014 Red Hat, Inc.
       4             :  * All Rights Reserved.
       5             :  */
       6             : 
       7             : #ifndef __XFS_SYSFS_H__
       8             : #define __XFS_SYSFS_H__
       9             : 
      10             : extern const struct kobj_type xfs_mp_ktype;     /* xfs_mount */
      11             : extern const struct kobj_type xfs_dbg_ktype;    /* debug */
      12             : extern const struct kobj_type xfs_log_ktype;    /* xlog */
      13             : extern const struct kobj_type xfs_stats_ktype;  /* stats */
      14             : 
      15             : static inline struct xfs_kobj *
      16             : to_kobj(struct kobject *kobject)
      17             : {
      18             :         return container_of(kobject, struct xfs_kobj, kobject);
      19             : }
      20             : 
      21             : static inline void
      22      669788 : xfs_sysfs_release(struct kobject *kobject)
      23             : {
      24      669788 :         struct xfs_kobj *kobj = to_kobj(kobject);
      25      669788 :         complete(&kobj->complete);
      26      669788 : }
      27             : 
      28             : static inline int
      29      669680 : xfs_sysfs_init(
      30             :         struct xfs_kobj         *kobj,
      31             :         const struct kobj_type  *ktype,
      32             :         struct xfs_kobj         *parent_kobj,
      33             :         const char              *name)
      34             : {
      35      669680 :         struct kobject          *parent;
      36      669680 :         int err;
      37             : 
      38      669680 :         parent = parent_kobj ? &parent_kobj->kobject : NULL;
      39      669680 :         init_completion(&kobj->complete);
      40      669680 :         err = kobject_init_and_add(&kobj->kobject, ktype, parent, "%s", name);
      41      669680 :         if (err)
      42           0 :                 kobject_put(&kobj->kobject);
      43             : 
      44      669680 :         return err;
      45             : }
      46             : 
      47             : static inline void
      48      669788 : xfs_sysfs_del(
      49             :         struct xfs_kobj *kobj)
      50             : {
      51      669788 :         kobject_del(&kobj->kobject);
      52      669788 :         kobject_put(&kobj->kobject);
      53      669788 :         wait_for_completion(&kobj->complete);
      54      669788 : }
      55             : 
      56             : int     xfs_error_sysfs_init(struct xfs_mount *mp);
      57             : void    xfs_error_sysfs_del(struct xfs_mount *mp);
      58             : 
      59             : #endif  /* __XFS_SYSFS_H__ */

Generated by: LCOV version 1.14