diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2019-07-16 18:12:56 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-07-16 18:12:56 -0400 |
| commit | a18f8775419d3df282dd83efdb51c5a64d092f31 (patch) | |
| tree | 1e0abc5c1d30e8bc58dc23099017eca496992fd2 /fs/btrfs/props.c | |
| parent | 3eb514866f20c5eb74637279774b6d73b855480a (diff) | |
| parent | e02d48eaaed77f6c36916a7aa65c451e1f9d9aab (diff) | |
Merge tag 'for-5.3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux
Pull btrfs updates from David Sterba:
"Highlights:
- chunks that have been trimmed and unchanged since last mount are
tracked and skipped on repeated trims
- use hw assissed crc32c on more arches, speedups if native
instructions or optimized implementation is available
- the RAID56 incompat bit is automatically removed when the last
block group of that type is removed
Fixes:
- fsync fix for reflink on NODATACOW files that could lead to ENOSPC
- fix data loss after inode eviction, renaming it, and fsync it
- fix fsync not persisting dentry deletions due to inode evictions
- update ctime/mtime/iversion after hole punching
- fix compression type validation (reported by KASAN)
- send won't be allowed to start when relocation is in progress, this
can cause spurious errors or produce incorrect send stream
Core:
- new tracepoints for space update
- tree-checker: better check for end of extents for some tree items
- preparatory work for more checksum algorithms
- run delayed iput at unlink time and don't push the work to cleaner
thread where it's not properly throttled
- wrap block mapping to structures and helpers, base for further
refactoring
- split large files, part 1:
- space info handling
- block group reservations
- delayed refs
- delayed allocation
- other cleanups and refactoring"
* tag 'for-5.3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (103 commits)
btrfs: fix memory leak of path on error return path
btrfs: move the subvolume reservation stuff out of extent-tree.c
btrfs: migrate the delalloc space stuff to it's own home
btrfs: migrate btrfs_trans_release_chunk_metadata
btrfs: migrate the delayed refs rsv code
btrfs: Evaluate io_tree in find_lock_delalloc_range()
btrfs: migrate the global_block_rsv helpers to block-rsv.c
btrfs: migrate the block-rsv code to block-rsv.c
btrfs: stop using block_rsv_release_bytes everywhere
btrfs: cleanup the target logic in __btrfs_block_rsv_release
btrfs: export __btrfs_block_rsv_release
btrfs: export btrfs_block_rsv_add_bytes
btrfs: move btrfs_block_rsv definitions into it's own header
btrfs: Simplify update of space_info in __reserve_metadata_bytes()
btrfs: unexport can_overcommit
btrfs: move reserve_metadata_bytes and supporting code to space-info.c
btrfs: move dump_space_info to space-info.c
btrfs: export block_rsv_use_bytes
btrfs: move btrfs_space_info_add_*_bytes to space-info.c
btrfs: move the space info update macro to space-info.h
...
Diffstat (limited to 'fs/btrfs/props.c')
| -rw-r--r-- | fs/btrfs/props.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/fs/btrfs/props.c b/fs/btrfs/props.c index a9e2e66152ee..e0469816c678 100644 --- a/fs/btrfs/props.c +++ b/fs/btrfs/props.c | |||
| @@ -257,11 +257,7 @@ static int prop_compression_validate(const char *value, size_t len) | |||
| 257 | if (!value) | 257 | if (!value) |
| 258 | return 0; | 258 | return 0; |
| 259 | 259 | ||
| 260 | if (!strncmp("lzo", value, 3)) | 260 | if (btrfs_compress_is_valid_type(value, len)) |
| 261 | return 0; | ||
| 262 | else if (!strncmp("zlib", value, 4)) | ||
| 263 | return 0; | ||
| 264 | else if (!strncmp("zstd", value, 4)) | ||
| 265 | return 0; | 261 | return 0; |
| 266 | 262 | ||
| 267 | return -EINVAL; | 263 | return -EINVAL; |
| @@ -341,7 +337,7 @@ static int inherit_props(struct btrfs_trans_handle *trans, | |||
| 341 | for (i = 0; i < ARRAY_SIZE(prop_handlers); i++) { | 337 | for (i = 0; i < ARRAY_SIZE(prop_handlers); i++) { |
| 342 | const struct prop_handler *h = &prop_handlers[i]; | 338 | const struct prop_handler *h = &prop_handlers[i]; |
| 343 | const char *value; | 339 | const char *value; |
| 344 | u64 num_bytes; | 340 | u64 num_bytes = 0; |
| 345 | 341 | ||
| 346 | if (!h->inheritable) | 342 | if (!h->inheritable) |
| 347 | continue; | 343 | continue; |
