1 // SPDX-License-Identifier: GPL-2.0
3 * Copyright (c) 2014 Red Hat, Inc.
7 #ifndef __XFS_SYSFS_H__
8 #define __XFS_SYSFS_H__
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 */
15 static inline struct xfs_kobj
*
16 to_kobj(struct kobject
*kobject
)
18 return container_of(kobject
, struct xfs_kobj
, kobject
);
22 xfs_sysfs_release(struct kobject
*kobject
)
24 struct xfs_kobj
*kobj
= to_kobj(kobject
);
25 complete(&kobj
->complete
);
30 struct xfs_kobj
*kobj
,
31 const struct kobj_type
*ktype
,
32 struct xfs_kobj
*parent_kobj
,
35 struct kobject
*parent
;
38 parent
= parent_kobj
? &parent_kobj
->kobject
: NULL
;
39 init_completion(&kobj
->complete
);
40 err
= kobject_init_and_add(&kobj
->kobject
, ktype
, parent
, "%s", name
);
42 kobject_put(&kobj
->kobject
);
49 struct xfs_kobj
*kobj
)
51 kobject_del(&kobj
->kobject
);
52 kobject_put(&kobj
->kobject
);
53 wait_for_completion(&kobj
->complete
);
56 int xfs_error_sysfs_init(struct xfs_mount
*mp
);
57 void xfs_error_sysfs_del(struct xfs_mount
*mp
);
59 #endif /* __XFS_SYSFS_H__ */