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 struct kobj_type xfs_mp_ktype
; /* xfs_mount */
11 extern struct kobj_type xfs_dbg_ktype
; /* debug */
12 extern struct kobj_type xfs_log_ktype
; /* xlog */
13 extern 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 struct kobj_type
*ktype
,
32 struct xfs_kobj
*parent_kobj
,
35 init_completion(&kobj
->complete
);
36 return kobject_init_and_add(&kobj
->kobject
, ktype
,
37 &parent_kobj
->kobject
, "%s", name
);
42 struct xfs_kobj
*kobj
)
44 kobject_del(&kobj
->kobject
);
45 kobject_put(&kobj
->kobject
);
46 wait_for_completion(&kobj
->complete
);
49 int xfs_error_sysfs_init(struct xfs_mount
*mp
);
50 void xfs_error_sysfs_del(struct xfs_mount
*mp
);
52 #endif /* __XFS_SYSFS_H__ */