summaryrefslogtreecommitdiffstats
path: root/fs/btrfs
Commit message (Collapse)AuthorAgeFilesLines
...
| * | btrfs: check-integrity: Fix NULL pointer dereference for degraded mountQu Wenruo2018-08-061-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit f8f84b2dfda5 ("btrfs: index check-integrity state hash by a dev_t") changed how btrfsic indexes device state. Now we need to access device->bdev->bd_dev, while for degraded mount it's completely possible to have device->bdev as NULL, thus it will trigger a NULL pointer dereference at mount time. Fix it by checking if the device is degraded before accessing device->bdev->bd_dev. There are a lot of other places accessing device->bdev->bd_dev, however the other call sites have either checked device->bdev, or the device->bdev is passed from btrfsic_map_block(), so it won't cause harm. Fixes: f8f84b2dfda5 ("btrfs: index check-integrity state hash by a dev_t") Signed-off-by: Qu Wenruo <wqu@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove fs_info from btrfs_force_chunk_allocNikolay Borisov2018-08-064-8/+5
| | | | | | | | | | | | | | | | | | | | | | | | It can be referenced from the passed transaction handle. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove fs_info from btrfs_inc_block_group_roNikolay Borisov2018-08-064-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | It can be referenced from the passed bg cache. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove fs_info from btrfs_alloc_logged_file_extentNikolay Borisov2018-08-063-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | It can be referenced from trans since the function is always called within a valid transaction. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove fs_info from remove_extent_backrefNikolay Borisov2018-08-061-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | It can be referenced directly from the transaction handle since it's always valid. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove fs_info from run_one_delayed_refNikolay Borisov2018-08-061-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | It can be referenced from the passed transaction handle, since it's always valid. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove fs_info from insert_inline_extent_backrefNikolay Borisov2018-08-061-7/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | It can be referenced from the passed transaction handle, since it's always valid. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove fs_info from exclude_super_stripesNikolay Borisov2018-08-061-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | It can be referenced from the passed block group. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove fs_info from free_excluded_extentsNikolay Borisov2018-08-061-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | It can be referenced from the passed block group. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove fs_info from check_system_chunkNikolay Borisov2018-08-063-7/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | It can be referenced from trans since the function is always called within a transaction. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove fs_info from btrfs_alloc_chunkNikolay Borisov2018-08-063-8/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | It can be referenced from trans since the function is always called within a transaction. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove fs_info from do_chunk_allocNikolay Borisov2018-08-061-12/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | This function is always called with a valid transaction handle from where fs_info can be referenced. No functional changes. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove fs_info from run_delayed_tree_refNikolay Borisov2018-08-061-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | It can always be referneced from the passed transaction handle since it's always valid. No functional changes. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove fs_info from cleanup_ref_headNikolay Borisov2018-08-061-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | fs_info can be refenreced from the transaction handle, since it's always valid. No functional changes. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove unused fs_info from cleanup_extent_opNikolay Borisov2018-08-061-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | The argument is no longer used so remove it. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove fs_info from run_delayed_extent_opNikolay Borisov2018-08-061-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | This function is always called with a valid transaction handle so fs_info can be referenced from there. No functional changes. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove fs_info from run_delayed_data_refNikolay Borisov2018-08-061-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | This function is always called with a valid transaction from where fs_info can be referenced. No functional changes. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove fs_info argument from __btrfs_inc_extent_refNikolay Borisov2018-08-061-9/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This function already takes a transaction which holds a reference to the fs_info struct. Use that reference and remove the extra arg. No functional changes. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove fs_info from alloc_reserved_file_extentNikolay Borisov2018-08-061-8/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | fs_info can be referenced from the transaction handle, which is always valid. No functional changes. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove fs_info from __btrfs_free_extentNikolay Borisov2018-08-061-13/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | This function is always called with a valid transaction handle so we can reference the fs_info from there. No functional changes. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove fs_info from btrfs_remove_block_groupNikolay Borisov2018-08-063-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | This function is always called with a valid transaction handle from where we can reference fs_info. No functional changes. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove fs_info from btrfs_make_block_groupNikolay Borisov2018-08-063-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | This function is always called with a valid transaction handle from where we can reference the fs_info. No functional changes. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove fs_info from btrfs_add_delayed_data_refNikolay Borisov2018-08-063-8/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | This function is always called with a valid transaction handle from where fs_info can be referenced. No functional changes. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove fs_info from btrfs_add_delayed_tree_refNikolay Borisov2018-08-063-8/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | This function is always called with a valid transaction handle from where fs_info can be referenced. No functional changes. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove fs_info from lookup_extent_backrefNikolay Borisov2018-08-061-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | This argument is unused. No functional changes. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove fs_info argument from lookup_extent_data_refNikolay Borisov2018-08-061-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | This function is always called with a valid transaction handle from where fs_info can be referenced. No functional changes. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove fs_info argument from lookup_tree_block_refNikolay Borisov2018-08-061-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | This function is always called with a valid transaction handle from where the fs_info can be referenced. No functional changes. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove fs_info argument from update_inline_extent_backrefNikolay Borisov2018-08-061-8/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | This function always uses the leaf's extent_buffer which already contains a reference to the fs_info. No functional changes. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove fs_info from lookup_inline_extent_backrefNikolay Borisov2018-08-061-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | This function is always called with a valid transaction handle from where the fs_info can be referenced. No functional changes. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove fs_info from fixup_low_keysNikolay Borisov2018-08-061-10/+8
| | | | | | | | | | | | | | | | | | | | | | | | This argument is unused. No functional changes. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove fs_info from remove_extent_data_refNikolay Borisov2018-08-061-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | This function is always called with a valid transaction from where the fs_info can be referenced. No functional change. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove fs_info argument from insert_extent_backrefNikolay Borisov2018-08-061-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | This function is always called with a valid transaction handle from where fs_info can be referenced. No functional changes. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove fs_info from insert_extent_data_refNikolay Borisov2018-08-061-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This function is always called with a valid transaction handle from where fs_info can be referenced. So remove the redundant argument. No functional changes. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Remove fs_info from insert_tree_block_refNikolay Borisov2018-08-061-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This function is always called with a valid transaction so there is no need to duplicate the fs_info, we can reference it directly from the trans handle. No functional changes. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Fix a C compliance issueBart Van Assche2018-08-061-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The C programming language does not allow to use preprocessor statements inside macro arguments (pr_info() is defined as a macro). Hence rework the pr_info() statement in btrfs_print_mod_info() such that it becomes compliant. This patch allows tools like sparse to analyze the BTRFS source code. Fixes: 62e855771dac ("btrfs: convert printk(KERN_* to use pr_* calls") Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Annotate fall-through when parsing mount optionBart Van Assche2018-08-061-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | This patch avoids that the compiler complains that a fall-through annotation is missing when building with W=1. Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Fix misleading indentation reported by smatchBart Van Assche2018-08-063-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | This patch avoids that building the BTRFS source code with smatch triggers complaints about inconsistent indenting. Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Streamline log_extent_csums a bitNikolay Borisov2018-08-061-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently this function takes the root as an argument only to get the log_root from it. Simplify this by directly passing the log root from the caller. Also eliminate the fs_info local variable, since it's used only once, so directly reference it from the transaction handle. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: remove remaing full_sync logic from btrfs_sync_fileDavid Sterba2018-08-063-53/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The logic to check if the inode is already in the log can now be simplified since we always wait for the ordered extents to complete before deciding whether the inode needs to be logged. The big comment about it can go away too. CC: Filipe Manana <fdmanana@suse.com> Suggested-by: Filipe Manana <fdmanana@suse.com> [ code and changelog copied from mail discussion ] Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: remove the logged extents infrastructureJosef Bacik2018-08-063-156/+3
| | | | | | | | | | | | | | | | | | | | | | | | This is no longer used anywhere, remove all of it. Signed-off-by: Josef Bacik <jbacik@fb.com> Reviewed-by: Filipe Manana <fdmanana@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: clean up the left over logged_list usageJosef Bacik2018-08-061-30/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We no longer use this list we've passed around so remove it everywhere. Also remove the extra checks for ordered/filemap errors as this is handled higher up now that we're waiting on ordered_extents before getting to the tree log code. Signed-off-by: Josef Bacik <jbacik@fb.com> Reviewed-by: Filipe Manana <fdmanana@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: remove the wait ordered logic in the log_one_extent pathJosef Bacik2018-08-061-108/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since we are waiting on all ordered extents at the start of the fsync() path we don't need to wait on any logged ordered extents, and we don't need to look up the checksums on the ordered extents as they will already be on disk prior to getting here. Rework this so we're only looking up and copying the on-disk checksums for the extent range we care about. Signed-off-by: Josef Bacik <jbacik@fb.com> Reviewed-by: Filipe Manana <fdmanana@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: always wait on ordered extents at fsync timeJosef Bacik2018-08-061-52/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There's a priority inversion that exists currently with btrfs fsync. In some cases we will collect outstanding ordered extents onto a list and only wait on them at the very last second. However this "very last second" falls inside of a transaction handle, so if we are in a lower priority cgroup we can end up holding the transaction open for longer than needed, so if a high priority cgroup is also trying to fsync() it'll see latency. Signed-off-by: Josef Bacik <jbacik@fb.com> Reviewed-by: Filipe Manana <fdmanana@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Fix comment in lookup_inline_extent_backrefNikolay Borisov2018-08-061-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | The comment wrongfully states that the owner parameter is the level of the parent block. In fact owner is the level of the current block and by adding 1 to it we can eventually get to the parent/root. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: Document __btrfs_inc_extent_refNikolay Borisov2018-08-061-0/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | Here is a doc-only patch which tires to deobfuscate the terra-incognita that arguments for delayed refs are. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: scrub: Remove unused copy_nocow_pages and its callchainQu Wenruo2018-08-061-365/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit ac0b4145d662a3b9e340 ("btrfs: scrub: Don't use inode pages for device replace") the function is not used and we can remove all functions down the call chain. There was an optimization that reused inode pages to speed up device replace, but broke when there was nodatasum and compressed page. The potential performance gain is small so we don't loose much by removing it and using scrub_pages same as the other pages. Signed-off-by: Qu Wenruo <wqu@suse.com> [ update changelog ] Signed-off-by: David Sterba <dsterba@suse.com>
| * | btrfs: replace get_seconds with new 64bit time APIAllen Pais2018-08-065-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The get_seconds() function is deprecated as it truncates the timestamp to 32 bits. Change it to or ktime_get_real_seconds(). Signed-off-by: Allen Pais <allen.lkml@gmail.com> Reviewed-by: David Sterba <dsterba@suse.com> [ update changelog ] Signed-off-by: David Sterba <dsterba@suse.com>
* | | Merge branch 'work.mkdir' of ↵Linus Torvalds2018-08-131-67/+39
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull vfs icache updates from Al Viro: - NFS mkdir/open_by_handle race fix - analogous solution for FUSE, replacing the one currently in mainline - new primitive to be used when discarding halfway set up inodes on failed object creation; gives sane warranties re icache lookups not returning such doomed by still not freed inodes. A bunch of filesystems switched to that animal. - Miklos' fix for last cycle regression in iget5_locked(); -stable will need a slightly different variant, unfortunately. - misc bits and pieces around things icache-related (in adfs and jfs). * 'work.mkdir' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: jfs: don't bother with make_bad_inode() in ialloc() adfs: don't put inodes into icache new helper: inode_fake_hash() vfs: don't evict uninitialized inode jfs: switch to discard_new_inode() ext2: make sure that partially set up inodes won't be returned by ext2_iget() udf: switch to discard_new_inode() ufs: switch to discard_new_inode() btrfs: switch to discard_new_inode() new primitive: discard_new_inode() kill d_instantiate_no_diralias() nfs_instantiate(): prevent multiple aliases for directory inode
| * | btrfs: switch to discard_new_inode()Al Viro2018-08-031-67/+39
| |/ | | | | | | | | | | | | Make sure that no partially set up inodes can be returned by open-by-handle. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* | Merge tag 'for-4.18-rc5-tag' of ↵Linus Torvalds2018-07-211-2/+5
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux Pull btrfs fix from David Sterba: "A fix of a corruption regarding fsync and clone, under some very specific conditions explained in the patch. The fix is marked for stable 3.16+ so I'd like to get it merged now given the impact" * tag 'for-4.18-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: Btrfs: fix file data corruption after cloning a range and fsync
OpenPOWER on IntegriCloud