brintos

brintos / linux-shallow public Read only

0
0
Text · 1.3 KiB · 148893e Raw
60 lines · c
1// SPDX-License-Identifier: GPL-2.02/*3 * Copyright (c) 2014 Red Hat, Inc.4 * All Rights Reserved.5 */6 7#ifndef __XFS_SYSFS_H__8#define __XFS_SYSFS_H__9 10extern const struct kobj_type xfs_mp_ktype;	/* xfs_mount */11extern const struct kobj_type xfs_dbg_ktype;	/* debug */12extern const struct kobj_type xfs_log_ktype;	/* xlog */13extern const struct kobj_type xfs_stats_ktype;	/* stats */14 15static inline struct xfs_kobj *16to_kobj(struct kobject *kobject)17{18	return container_of(kobject, struct xfs_kobj, kobject);19}20 21static inline void22xfs_sysfs_release(struct kobject *kobject)23{24	struct xfs_kobj *kobj = to_kobj(kobject);25	complete(&kobj->complete);26}27 28static inline int29xfs_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	struct kobject		*parent;36	int err;37 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);41	if (err)42		kobject_put(&kobj->kobject);43 44	return err;45}46 47static inline void48xfs_sysfs_del(49	struct xfs_kobj	*kobj)50{51	kobject_del(&kobj->kobject);52	kobject_put(&kobj->kobject);53	wait_for_completion(&kobj->complete);54}55 56int	xfs_error_sysfs_init(struct xfs_mount *mp);57void	xfs_error_sysfs_del(struct xfs_mount *mp);58 59#endif	/* __XFS_SYSFS_H__ */60