Both mainline and misc-5.2 fails the test case that transaction generation number must be unaltered if the property validation fails.
For example: btrfs in dump-super /dev/sdb | grep ^generation; \ btrfs prop set /btrfs compression lz; sync; \ btrfs in dump-super /dev/sdb | grep ^generation generation 53 ERROR: failed to set compression for /btrfs: Invalid argument generation 54 Which the patch in the mailing list fixes and based on misc-5.2 [PATCH 4/4 RESEND] btrfs: fix property validate fail should not increment But, now I notice that the reason for which the original code failed is different from the reason for which misc-5.2 failed. Former failed because the malformed 'lz' was only abled to be caught by handle->apply(), and in latter we were calling the start_transaction() too early before the handle->validation() which few of the patches in misc-5.1 did. My bad. As per your misc-5.2 branch please drop the following patches as I have better fixes as in this patch. 584aebf26bbf btrfs: merge btrfs_setxattr and do_setxattr ab54ee38fff7 btrfs: don't create transaction in btrfs_setxattr 0cbf560f72e1 btrfs: start transaction in btrfs_xattr_handler_set db0f220e98eb btrfs: start transaction in btrfs_set_acl 56e9e992c00a btrfs: start transaction in btrfs_set_prop_trans 3e2299ea6a8b btrfs: refactor btrfs_set_prop and add btrfs_set_prop_trans 737e67ce0f3f btrfs: merge _btrfs_set_prop helpers And please apply the patches as in this set. Anand Jain (4): btrfs: rename __btrfs_set_prop to btrfs_set_prop_trans btrfs: rename __btrfs_set_acl to do_set_acl btrfs: fix zstd compression parameter btrfs: fix vanished compression property after failed set fs/btrfs/acl.c | 12 +++++------- fs/btrfs/props.c | 23 ++++++++++------------- 2 files changed, 15 insertions(+), 20 deletions(-) -- 2.17.1