Re: [PATCH v3 0/2] btrfs: Enumerate and export exclusive operations

David Sterba
2020-09-02T20:12:15Z

On Tue, Aug 25, 2020 at 10:02:31AM -0500, Goldwyn Rodrigues wrote:
> This patch series enumerates the exlcusive operation currently being
> perfomed by the current filesystem and exports it in the sys filesytem
> at /sys/fs/btrfs/<fsid>/exclusive_operation.
>
> This would enable our tools to specify precisely which operation is
> running on why starting an exclusive operation failed. The series also
> adds a sysfs_notify() to alert userspace when the state changes, so
> userspace can perform select() on it to get notified of the change.
> This would enable us to enqueue a command which will wait for current
> exclusive operation to complete before issuing the next exclusive
> operation. This has been done synchronously as opposed to a background
> process, or else error collection (if any) will become a nightmare.
>
> For backward compatibility, the tools continue working as before if the
> sys file is not present.
>
> Changes since v1:
> - Corrected call for btrfs_start_exop() in btrfs_ioctl_dev_replace()
> - Use fsid_str[] instead of fsid[] to save on uuid_parse()
>
> Changes since v2:
> - Dropped patch to add additional balance information
> - modified (simplified) progs patches accordingly

I've switched exclusive_operation to long and used cmpxchg, plus some
fixup to comments still mentioning the old EXCL_OP bit, some other minor
style fixups. The patches will be in for-next for a day or two and then
moved to misc-next.