struct btrfs_block_rsv *block_rsv = &fs_info->global_block_rsv;
        return btrfs_show_u64(&block_rsv->size, &block_rsv->lock, buf);
 }
-BTRFS_ATTR(global_rsv_size, global_rsv_size_show);
+BTRFS_ATTR(allocation, global_rsv_size, global_rsv_size_show);
 
 static ssize_t global_rsv_reserved_show(struct kobject *kobj,
                                        struct kobj_attribute *a, char *buf)
        struct btrfs_block_rsv *block_rsv = &fs_info->global_block_rsv;
        return btrfs_show_u64(&block_rsv->reserved, &block_rsv->lock, buf);
 }
-BTRFS_ATTR(global_rsv_reserved, global_rsv_reserved_show);
+BTRFS_ATTR(allocation, global_rsv_reserved, global_rsv_reserved_show);
 
 #define to_space_info(_kobj) container_of(_kobj, struct btrfs_space_info, kobj)
 #define to_raid_kobj(_kobj) container_of(_kobj, struct raid_kobject, kobj)
 
 static ssize_t raid_bytes_show(struct kobject *kobj,
                               struct kobj_attribute *attr, char *buf);
-BTRFS_RAID_ATTR(total_bytes, raid_bytes_show);
-BTRFS_RAID_ATTR(used_bytes, raid_bytes_show);
+BTRFS_ATTR(raid, total_bytes, raid_bytes_show);
+BTRFS_ATTR(raid, used_bytes, raid_bytes_show);
 
 static ssize_t raid_bytes_show(struct kobject *kobj,
                               struct kobj_attribute *attr, char *buf)
 
        down_read(&sinfo->groups_sem);
        list_for_each_entry(block_group, &sinfo->block_groups[index], list) {
-               if (&attr->attr == BTRFS_RAID_ATTR_PTR(total_bytes))
+               if (&attr->attr == BTRFS_ATTR_PTR(raid, total_bytes))
                        val += block_group->key.offset;
                else
                        val += btrfs_block_group_used(&block_group->item);
 }
 
 static struct attribute *raid_attributes[] = {
-       BTRFS_RAID_ATTR_PTR(total_bytes),
-       BTRFS_RAID_ATTR_PTR(used_bytes),
+       BTRFS_ATTR_PTR(raid, total_bytes),
+       BTRFS_ATTR_PTR(raid, used_bytes),
        NULL
 };
 
        struct btrfs_space_info *sinfo = to_space_info(kobj);           \
        return btrfs_show_u64(&sinfo->field, &sinfo->lock, buf);        \
 }                                                                      \
-BTRFS_ATTR(field, btrfs_space_info_show_##field)
+BTRFS_ATTR(space_info, field, btrfs_space_info_show_##field)
 
 static ssize_t btrfs_space_info_show_total_bytes_pinned(struct kobject *kobj,
                                                       struct kobj_attribute *a,
 SPACE_INFO_ATTR(bytes_readonly);
 SPACE_INFO_ATTR(disk_used);
 SPACE_INFO_ATTR(disk_total);
-BTRFS_ATTR(total_bytes_pinned, btrfs_space_info_show_total_bytes_pinned);
+BTRFS_ATTR(space_info, total_bytes_pinned,
+          btrfs_space_info_show_total_bytes_pinned);
 
 static struct attribute *space_info_attrs[] = {
-       BTRFS_ATTR_PTR(flags),
-       BTRFS_ATTR_PTR(total_bytes),
-       BTRFS_ATTR_PTR(bytes_used),
-       BTRFS_ATTR_PTR(bytes_pinned),
-       BTRFS_ATTR_PTR(bytes_reserved),
-       BTRFS_ATTR_PTR(bytes_may_use),
-       BTRFS_ATTR_PTR(bytes_readonly),
-       BTRFS_ATTR_PTR(disk_used),
-       BTRFS_ATTR_PTR(disk_total),
-       BTRFS_ATTR_PTR(total_bytes_pinned),
+       BTRFS_ATTR_PTR(space_info, flags),
+       BTRFS_ATTR_PTR(space_info, total_bytes),
+       BTRFS_ATTR_PTR(space_info, bytes_used),
+       BTRFS_ATTR_PTR(space_info, bytes_pinned),
+       BTRFS_ATTR_PTR(space_info, bytes_reserved),
+       BTRFS_ATTR_PTR(space_info, bytes_may_use),
+       BTRFS_ATTR_PTR(space_info, bytes_readonly),
+       BTRFS_ATTR_PTR(space_info, disk_used),
+       BTRFS_ATTR_PTR(space_info, disk_total),
+       BTRFS_ATTR_PTR(space_info, total_bytes_pinned),
        NULL,
 };
 
 };
 
 static const struct attribute *allocation_attrs[] = {
-       BTRFS_ATTR_PTR(global_rsv_reserved),
-       BTRFS_ATTR_PTR(global_rsv_size),
+       BTRFS_ATTR_PTR(allocation, global_rsv_reserved),
+       BTRFS_ATTR_PTR(allocation, global_rsv_size),
        NULL,
 };
 
 
        return len;
 }
-BTRFS_ATTR_RW(label, btrfs_label_show, btrfs_label_store);
+BTRFS_ATTR_RW(, label, btrfs_label_show, btrfs_label_store);
 
 static ssize_t btrfs_nodesize_show(struct kobject *kobj,
                                struct kobj_attribute *a, char *buf)
        return snprintf(buf, PAGE_SIZE, "%u\n", fs_info->super_copy->nodesize);
 }
 
-BTRFS_ATTR(nodesize, btrfs_nodesize_show);
+BTRFS_ATTR(, nodesize, btrfs_nodesize_show);
 
 static ssize_t btrfs_sectorsize_show(struct kobject *kobj,
                                struct kobj_attribute *a, char *buf)
                        fs_info->super_copy->sectorsize);
 }
 
-BTRFS_ATTR(sectorsize, btrfs_sectorsize_show);
+BTRFS_ATTR(, sectorsize, btrfs_sectorsize_show);
 
 static ssize_t btrfs_clone_alignment_show(struct kobject *kobj,
                                struct kobj_attribute *a, char *buf)
                        fs_info->super_copy->sectorsize);
 }
 
-BTRFS_ATTR(clone_alignment, btrfs_clone_alignment_show);
+BTRFS_ATTR(, clone_alignment, btrfs_clone_alignment_show);
 
 static ssize_t quota_override_show(struct kobject *kobj,
                                   struct kobj_attribute *a, char *buf)
        return len;
 }
 
-BTRFS_ATTR_RW(quota_override, quota_override_show, quota_override_store);
+BTRFS_ATTR_RW(, quota_override, quota_override_show, quota_override_store);
 
 static const struct attribute *btrfs_attrs[] = {
-       BTRFS_ATTR_PTR(label),
-       BTRFS_ATTR_PTR(nodesize),
-       BTRFS_ATTR_PTR(sectorsize),
-       BTRFS_ATTR_PTR(clone_alignment),
-       BTRFS_ATTR_PTR(quota_override),
+       BTRFS_ATTR_PTR(, label),
+       BTRFS_ATTR_PTR(, nodesize),
+       BTRFS_ATTR_PTR(, sectorsize),
+       BTRFS_ATTR_PTR(, clone_alignment),
+       BTRFS_ATTR_PTR(, quota_override),
        NULL,
 };
 
 
        .store  = _store,                                               \
 }
 
-#define BTRFS_ATTR_RW(_name, _show, _store)                    \
-       static struct kobj_attribute btrfs_attr_##_name =               \
+#define BTRFS_ATTR_RW(_prefix, _name, _show, _store)                   \
+       static struct kobj_attribute btrfs_attr_##_prefix##_##_name =   \
                        __INIT_KOBJ_ATTR(_name, 0644, _show, _store)
 
-#define BTRFS_ATTR(_name, _show)                                       \
-       static struct kobj_attribute btrfs_attr_##_name =               \
+#define BTRFS_ATTR(_prefix, _name, _show)                              \
+       static struct kobj_attribute btrfs_attr_##_prefix##_##_name =   \
                        __INIT_KOBJ_ATTR(_name, 0444, _show, NULL)
 
-#define BTRFS_ATTR_PTR(_name)    (&btrfs_attr_##_name.attr)
-
-#define BTRFS_RAID_ATTR(_name, _show)                                  \
-       static struct kobj_attribute btrfs_raid_attr_##_name =          \
-                       __INIT_KOBJ_ATTR(_name, 0444, _show, NULL)
-
-#define BTRFS_RAID_ATTR_PTR(_name)    (&btrfs_raid_attr_##_name.attr)
+#define BTRFS_ATTR_PTR(_prefix, _name)                                 \
+       (&btrfs_attr_##_prefix##_##_name.attr)
 
 
 struct btrfs_feature_attr {
        u64 feature_bit;
 };
 
-#define BTRFS_FEAT_ATTR(_name, _feature_set, _prefix, _feature_bit)         \
-static struct btrfs_feature_attr btrfs_attr_##_name = {                             \
+#define BTRFS_FEAT_ATTR(_name, _feature_set, _feature_prefix, _feature_bit)  \
+static struct btrfs_feature_attr btrfs_attr_features_##_name = {            \
        .kobj_attr = __INIT_KOBJ_ATTR(_name, S_IRUGO,                        \
                                      btrfs_feature_attr_show,               \
                                      btrfs_feature_attr_store),             \
        .feature_set    = _feature_set,                                      \
-       .feature_bit    = _prefix ##_## _feature_bit,                        \
+       .feature_bit    = _feature_prefix ##_## _feature_bit,                \
 }
-#define BTRFS_FEAT_ATTR_PTR(_name)    (&btrfs_attr_##_name.kobj_attr.attr)
+#define BTRFS_FEAT_ATTR_PTR(_name)                                          \
+       (&btrfs_attr_features_##_name.kobj_attr.attr)
 
 #define BTRFS_FEAT_ATTR_COMPAT(name, feature) \
        BTRFS_FEAT_ATTR(name, FEAT_COMPAT, BTRFS_FEATURE_COMPAT, feature)