diff options
Diffstat (limited to 'fs/btrfs/sysfs.h')
-rw-r--r-- | fs/btrfs/sysfs.h | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/fs/btrfs/sysfs.h b/fs/btrfs/sysfs.h index f7dd298b3cf6..3a4bbed723fd 100644 --- a/fs/btrfs/sysfs.h +++ b/fs/btrfs/sysfs.h | |||
@@ -61,11 +61,23 @@ static struct btrfs_feature_attr btrfs_attr_##_name = { \ | |||
61 | BTRFS_FEAT_ATTR(name, FEAT_INCOMPAT, BTRFS_FEATURE_INCOMPAT, feature) | 61 | BTRFS_FEAT_ATTR(name, FEAT_INCOMPAT, BTRFS_FEATURE_INCOMPAT, feature) |
62 | 62 | ||
63 | /* convert from attribute */ | 63 | /* convert from attribute */ |
64 | #define to_btrfs_feature_attr(a) \ | 64 | static inline struct btrfs_feature_attr * |
65 | container_of(a, struct btrfs_feature_attr, kobj_attr) | 65 | to_btrfs_feature_attr(struct kobj_attribute *a) |
66 | #define attr_to_btrfs_attr(a) container_of(a, struct kobj_attribute, attr) | 66 | { |
67 | #define attr_to_btrfs_feature_attr(a) \ | 67 | return container_of(a, struct btrfs_feature_attr, kobj_attr); |
68 | to_btrfs_feature_attr(attr_to_btrfs_attr(a)) | 68 | } |
69 | |||
70 | static inline struct kobj_attribute *attr_to_btrfs_attr(struct attribute *attr) | ||
71 | { | ||
72 | return container_of(attr, struct kobj_attribute, attr); | ||
73 | } | ||
74 | |||
75 | static inline struct btrfs_feature_attr * | ||
76 | attr_to_btrfs_feature_attr(struct attribute *attr) | ||
77 | { | ||
78 | return to_btrfs_feature_attr(attr_to_btrfs_attr(attr)); | ||
79 | } | ||
80 | |||
69 | char *btrfs_printable_features(enum btrfs_feature_set set, u64 flags); | 81 | char *btrfs_printable_features(enum btrfs_feature_set set, u64 flags); |
70 | extern const char * const btrfs_feature_set_names[3]; | 82 | extern const char * const btrfs_feature_set_names[3]; |
71 | extern struct kobj_type space_info_ktype; | 83 | extern struct kobj_type space_info_ktype; |