Lines Matching refs:fa
145 static int can_modify_feature(struct btrfs_feature_attr *fa) in can_modify_feature() argument
149 switch (fa->feature_set) { in can_modify_feature()
163 btrfs_warn(NULL, "sysfs: unknown feature set %d", fa->feature_set); in can_modify_feature()
167 if (set & fa->feature_bit) in can_modify_feature()
169 if (clear & fa->feature_bit) in can_modify_feature()
180 struct btrfs_feature_attr *fa = to_btrfs_feature_attr(a); in btrfs_feature_attr_show() local
182 u64 features = get_features(fs_info, fa->feature_set); in btrfs_feature_attr_show()
183 if (features & fa->feature_bit) in btrfs_feature_attr_show()
186 val = can_modify_feature(fa); in btrfs_feature_attr_show()
196 struct btrfs_feature_attr *fa = to_btrfs_feature_attr(a); in btrfs_feature_attr_store() local
212 if (fa->feature_set == FEAT_COMPAT) { in btrfs_feature_attr_store()
215 } else if (fa->feature_set == FEAT_COMPAT_RO) { in btrfs_feature_attr_store()
223 features = get_features(fs_info, fa->feature_set); in btrfs_feature_attr_store()
226 if ((val && (features & fa->feature_bit)) || in btrfs_feature_attr_store()
227 (!val && !(features & fa->feature_bit))) in btrfs_feature_attr_store()
230 if ((val && !(set & fa->feature_bit)) || in btrfs_feature_attr_store()
231 (!val && !(clear & fa->feature_bit))) { in btrfs_feature_attr_store()
234 val ? "En" : "Dis", fa->kobj_attr.attr.name); in btrfs_feature_attr_store()
239 val ? "Setting" : "Clearing", fa->kobj_attr.attr.name); in btrfs_feature_attr_store()
242 features = get_features(fs_info, fa->feature_set); in btrfs_feature_attr_store()
244 features |= fa->feature_bit; in btrfs_feature_attr_store()
246 features &= ~fa->feature_bit; in btrfs_feature_attr_store()
247 set_features(fs_info, fa->feature_set, features); in btrfs_feature_attr_store()
266 struct btrfs_feature_attr *fa; in btrfs_feature_visible() local
269 fa = attr_to_btrfs_feature_attr(attr); in btrfs_feature_visible()
270 features = get_features(fs_info, fa->feature_set); in btrfs_feature_visible()
272 if (can_modify_feature(fa)) in btrfs_feature_visible()
274 else if (!(features & fa->feature_bit)) in btrfs_feature_visible()
1676 struct btrfs_feature_attr *fa; in addrm_unknown_feature_attrs() local
1681 fa = &btrfs_feature_attrs[set][i]; in addrm_unknown_feature_attrs()
1682 attrs[0] = &fa->kobj_attr.attr; in addrm_unknown_feature_attrs()
1815 struct btrfs_feature_attr *fa; in init_feature_attrs() local
1828 fa = &btrfs_feature_attrs[sfa->feature_set][bit]; in init_feature_attrs()
1830 fa->kobj_attr.attr.name = sfa->kobj_attr.attr.name; in init_feature_attrs()
1836 fa = &btrfs_feature_attrs[set][i]; in init_feature_attrs()
1838 if (fa->kobj_attr.attr.name) in init_feature_attrs()
1844 fa->kobj_attr.attr.name = name; in init_feature_attrs()
1845 fa->kobj_attr.attr.mode = S_IRUGO; in init_feature_attrs()
1846 fa->feature_set = set; in init_feature_attrs()
1847 fa->feature_bit = 1ULL << i; in init_feature_attrs()