Anand Jain 272e5326c7 btrfs: prop: fix vanished compression property after failed set
The compression property resets to NULL, instead of the old value if we
fail to set the new compression parameter.

  $ btrfs prop get /btrfs compression
    compression=lzo
  $ btrfs prop set /btrfs compression zli
    ERROR: failed to set compression for /btrfs: Invalid argument
  $ btrfs prop get /btrfs compression

This is because the compression property ->validate() is successful for
'zli' as the strncmp() used the length passed from the userspace.

Fix it by using the expected string length in strncmp().

Fixes: 63541927c8d1 ("Btrfs: add support for inode properties")
Fixes: 5c1aab1dd544 ("btrfs: Add zstd support")
CC: stable@vger.kernel.org # 4.14+
Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Signed-off-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2019-04-04 17:57:53 +02:00
..
2019-01-06 08:36:21 -05:00
2018-08-21 23:54:17 -04:00
2018-12-03 15:30:24 -06:00
\n
2018-12-27 17:00:35 -08:00
2018-12-31 09:41:37 -08:00
2018-11-30 14:56:14 -08:00
2018-08-17 16:20:28 -07:00
2018-09-29 22:47:48 -04:00
2019-01-02 16:35:23 -08:00
2018-05-22 14:27:52 -04:00
2018-11-05 14:57:05 -05:00
2018-05-22 14:27:52 -04:00
2019-01-07 08:53:32 +01:00
\n
2018-12-27 17:00:35 -08:00
2018-07-03 16:44:45 -04:00
2018-10-29 14:29:58 -07:00
2018-06-05 19:23:26 +02:00
2018-12-31 09:46:39 -08:00
2018-12-28 20:54:57 -08:00
2018-08-21 18:19:09 -07:00
2018-06-11 08:22:34 -07:00
2018-08-21 18:19:09 -07:00