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

Goldwyn Rodrigues
2020-08-25T15:02:41Z

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