On Fri, Jan 29, 2016 at 01:55:31PM +0000, Filipe Manana wrote:
> On Thu, Jan 21, 2016 at 6:32 PM, David Sterba <dsterba@xxxxxxxx> wrote:
> > The files under /sys/fs/UUID/features get out of sync with the actual
> > incompat bits set for the filesystem if they change after mount. We're
> > going to sync them and need a helper to do that.
> >
> > Signed-off-by: David Sterba <dsterba@xxxxxxxx>
> > ---
> > fs/btrfs/sysfs.c | 30 ++++++++++++++++++++++++++++++
> > fs/btrfs/sysfs.h | 3 +++
> > 2 files changed, 33 insertions(+)
> >
> > diff --git a/fs/btrfs/sysfs.c b/fs/btrfs/sysfs.c
> > index 906f7ed6fc80..6986886243bf 100644
> > --- a/fs/btrfs/sysfs.c
> > +++ b/fs/btrfs/sysfs.c
> > @@ -782,6 +782,36 @@ int btrfs_sysfs_add_mounted(struct btrfs_fs_info *fs_info)
> > return error;
> > }
> >
> > +
> > +/*
> > + * Change per-fs features in /sys/fs/btrfs/UUID/features to match current
> > + * values in superblock. Call after any changes to incompat/compat_ro flags
> > + */
> > +void btrfs_sysfs_feature_update(struct btrfs_fs_info *fs_info,
> > + u64 bit, enum btrfs_feature_set set)
> > +{
> > + struct btrfs_fs_devices *fs_devs;
> > + struct kobject *fsid_kobj;
> > + u64 features;
> > + int ret;
> > +
> > + if (!fs_info)
> > + return;
> > +
> > + features = get_features(fs_info, set);
> > + ASSERT(bit & supported_feature_masks[set]);
> > +
> > + fs_devs = fs_info->fs_devices;
> > + fsid_kobj = &fs_devs->fsid_kobj;
> > +
> > + /*
> > + * FIXME: this is too heavy to update just one value, ideally we'd like
> > + * to use sysfs_update_group but some refactoring is needed first.
> > + */
> > + sysfs_remove_group(fsid_kobj, &btrfs_feature_attr_group);
> > + ret = sysfs_create_group(fsid_kobj, &btrfs_feature_attr_group);
>
>
> Did you try to run all xfstests with this?
>
> I'm getting very often lots of warnings in btrfs tests 060 to 074:
I did, but I have the compression remount tests ratelimited a bit
because of bugs in mount on my test box.
I might wait on the whole pull until before rc3, so we can sort this out
properly.
-chris
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html