Re: [GIT PULL] Btrfs fix for 5.12-rc7
The pull request you sent on Sun, 11 Apr 2021 15:55:41 +0200: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.12-rc6-tag has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/7d900724913cb293620a05c5a3134710db95d0d9 Thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/prtracker.html
[GIT PULL] Btrfs fix for 5.12-rc7
From: David Sterba Hi, here's one more patch that we'd like to get to 5.12 before release, it's changing where and how the superblock is stored in the zoned mode. It is an on-disk format change but so far there are no implications for users as the proper mkfs support hasn't been merged and is waiting for the kernel side to settle. Until now, the superblocks were derived from the zone index, but zone size can differ per device. This is changed to be based on fixed offset values, to make it independent of the device zone size. The work on that got a bit delayed, we discussed the exact locations to support potential device sizes and usecases. (Partially delayed also due to my vacation.) Having that in the same release where the zoned mode is declared usable is highly desired, there are userspace projects that need to be updated to recognize the feature. Pushing that to the next release would make things harder to test. Please pull, thanks. The following changes since commit c1d6abdac46ca8127274bea195d804e3f2cec7ee: btrfs: fix check_data_csum() error message for direct I/O (2021-03-18 21:25:11 +0100) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.12-rc6-tag for you to fetch changes up to 53b74fa990bf76f290aa5930abfcf37424a1a865: btrfs: zoned: move superblock logging zone location (2021-04-10 12:13:16 +0200) Naohiro Aota (1): btrfs: zoned: move superblock logging zone location fs/btrfs/zoned.c | 53 ++--- 1 file changed, 42 insertions(+), 11 deletions(-)
Re: [GIT PULL] Btrfs fixes for 5.12-rc5
The pull request you sent on Thu, 25 Mar 2021 22:36:55 +0100: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.12-rc4-tag has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/701c09c988bd60d950d49c48993b6c06efbfba7f Thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/prtracker.html
[GIT PULL] Btrfs fixes for 5.12-rc5
From: David Sterba Hi, there are few fixes for issues that have some user visibility and are simple enough for this time of development cycle. Please pull thanks. - a few fixes for rescue= mount option, adding more checks for missing trees - fix sleeping in atomic context on qgroup deletion - fix subvolume deletion on mount - fix build with M= syntax - fix checksum mismatch error message for direct io The following changes since commit 485df75554257e883d0ce39bb886e8212349748e: btrfs: always pin deleted leaves when there are active tree mod log users (2021-03-16 20:32:22 +0100) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.12-rc4-tag for you to fetch changes up to c1d6abdac46ca8127274bea195d804e3f2cec7ee: btrfs: fix check_data_csum() error message for direct I/O (2021-03-18 21:25:11 +0100) David Sterba (1): btrfs: fix build when using M=fs/btrfs Filipe Manana (2): btrfs: fix subvolume/snapshot deletion not triggered on mount btrfs: fix sleep while in non-sleep context during qgroup removal Johannes Thumshirn (1): btrfs: zoned: remove outdated WARN_ON in direct IO Josef Bacik (3): btrfs: do not initialize dev stats if we have no dev_root btrfs: initialize device::fs_info always btrfs: do not initialize dev replace for bad dev root Omar Sandoval (1): btrfs: fix check_data_csum() error message for direct I/O fs/btrfs/Makefile | 10 ++ fs/btrfs/dev-replace.c | 3 +++ fs/btrfs/disk-io.c | 19 +-- fs/btrfs/inode.c | 18 +- fs/btrfs/qgroup.c | 12 ++-- fs/btrfs/volumes.c | 3 +++ 6 files changed, 48 insertions(+), 17 deletions(-)
Re: [GIT PULL] Btrfs fixes for 5.12-rc4
The pull request you sent on Thu, 18 Mar 2021 21:14:11 +0100: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.12-rc3-tag has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/81aa0968b7ea6dbabcdcda37dc8434dca6e1565b Thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/prtracker.html
[GIT PULL] Btrfs fixes for 5.12-rc4
From: David Sterba Hi, there are still regressions being found and fixed in the zoned mode and subpage code, the rest are fixes for bugs reported by users. Please pull, thanks. Regressions: - subpage block support: - readahead works on the proper block size - fix last page zeroing - zoned mode: - linked list corruption for tree log Fixes: - qgroup leak after falloc faiulre - tree mod log and backref resolving - extent buffer cloning race when resolving backrefs - pin deleted leaves with active tree mod log users - drop debugging flag from slab cache The following changes since commit badae9c86979c459bd7d895d6d7ddc7a01131ff7: btrfs: zoned: do not account freed region of read-only block group as zone_unusable (2021-03-04 16:16:58 +0100) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.12-rc3-tag for you to fetch changes up to 485df75554257e883d0ce39bb886e8212349748e: btrfs: always pin deleted leaves when there are active tree mod log users (2021-03-16 20:32:22 +0100) David Sterba (1): btrfs: fix slab cache flags for free space tree bitmap Filipe Manana (3): btrfs: zoned: fix linked list corruption after log root tree allocation failure btrfs: fix race when cloning extent buffer during rewind of an old root btrfs: always pin deleted leaves when there are active tree mod log users Qu Wenruo (5): btrfs: fix wrong offset to zero out range beyond i_size btrfs: track qgroup released data in own variable in insert_prealloc_file_extent btrfs: fix qgroup data rsv leak caused by falloc failure btrfs: subpage: fix wild pointer access during metadata read failure btrfs: subpage: make readahead work properly fs/btrfs/ctree.c | 2 ++ fs/btrfs/extent-tree.c | 23 ++- fs/btrfs/extent_io.c | 33 +++-- fs/btrfs/inode.c | 37 ++--- fs/btrfs/reada.c | 35 ++- fs/btrfs/tree-log.c| 8 6 files changed, 103 insertions(+), 35 deletions(-)
Re: [GIT PULL] Btrfs fixes for 5.12-rc1, part 2
The pull request you sent on Fri, 5 Mar 2021 16:55:17 +0100: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.12-rc1-tag has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/f09b04cc6447331e731629e8b72587287f3a4490 Thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/prtracker.html
[GIT PULL] Btrfs fixes for 5.12-rc1, part 2
From: David Sterba Hi, more regression fixes and stabilization. Please pull, thanks. Regressions: - zoned mode - count zone sizes in wider int types - fix space accounting for read-only block groups - subpage: fix page tail zeroing Fixes: - fix spurious warning when remounting with free space tree - fix warning when creating a directory with smack enabled - ioctl checks for qgroup inheritance when creating a snapshot - qgroup - fix missing unlock on error path in zero range - fix amount of released reservation on error - fix flushing from unsafe context with open transaction, potentially deadlocking - minor build warning fixes The following changes since commit 6e37d245994189ba757df7dc2950a44d31421ac6: btrfs: zoned: fix deadlock on log sync (2021-02-22 18:08:48 +0100) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.12-rc1-tag for you to fetch changes up to badae9c86979c459bd7d895d6d7ddc7a01131ff7: btrfs: zoned: do not account freed region of read-only block group as zone_unusable (2021-03-04 16:16:58 +0100) Boris Burkov (1): btrfs: fix spurious free_space_tree remount warning Dan Carpenter (1): btrfs: validate qgroup inherit for SNAP_CREATE_V2 ioctl Filipe Manana (1): btrfs: fix warning when creating a directory with smack enabled Naohiro Aota (2): btrfs: zoned: use sector_t for zone sectors btrfs: zoned: do not account freed region of read-only block group as zone_unusable Nikolay Borisov (4): btrfs: unlock extents in btrfs_zero_range in case of quota reservation errors btrfs: free correct amount of space in btrfs_delayed_inode_reserve_metadata btrfs: export and rename qgroup_reserve_meta btrfs: don't flush from btrfs_delayed_inode_reserve_metadata Qu Wenruo (1): btrfs: subpage: fix the false data csum mismatch error Randy Dunlap (1): btrfs: ref-verify: use 'inline void' keyword ordering fs/btrfs/delayed-inode.c| 5 +++-- fs/btrfs/extent_io.c| 21 - fs/btrfs/file.c | 5 - fs/btrfs/free-space-cache.c | 7 ++- fs/btrfs/inode.c| 2 +- fs/btrfs/ioctl.c| 19 ++- fs/btrfs/qgroup.c | 8 fs/btrfs/qgroup.h | 2 ++ fs/btrfs/ref-verify.c | 4 ++-- fs/btrfs/super.c| 4 ++-- fs/btrfs/xattr.c| 31 +++ fs/btrfs/zoned.c| 4 ++-- 12 files changed, 87 insertions(+), 25 deletions(-)
Re: [GIT PULL] Btrfs updates for 5.12-rc2
The pull request you sent on Mon, 1 Mar 2021 14:44:16 +0100: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.12-rc1-tag has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/c608aca57dd034d09f307b109b670d1cfb829279 Thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/prtracker.html
[GIT PULL] Btrfs updates for 5.12-rc2
From: David Sterba Hi, first batch of fixes that usually arrive during the merge window code freeze. Regressions and stable material. Please pull, thanks. Regressions: - fix deadlock in log sync in zoned mode - fix bugs in subpage mode still wrongly assuming sectorsize == page size Fixes: - fix missing kunmap of the Q stripe in RAID6 - block group fixes: - fix race between extent freeing/allocation when using bitmaps - avoid double put of block group when emptying cluster - swapfile fixes: - fix swapfile writes vs running scrub - fix swapfile activation vs snapshot creation - fix stale data exposure after cloning a hole with NO_HOLES enabled - remove tree-checker check that does not work in case information from other leaves is necessary The following changes since commit 9d294a685fbcb256ce8c5f7fd88a7596d0f52a8a: btrfs: zoned: enable to mount ZONED incompat flag (2021-02-09 02:52:24 +0100) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.12-rc1-tag for you to fetch changes up to 6e37d245994189ba757df7dc2950a44d31421ac6: btrfs: zoned: fix deadlock on log sync (2021-02-22 18:08:48 +0100) Filipe Manana (4): btrfs: avoid checking for RO block group twice during nocow writeback btrfs: fix race between writes to swap files and scrub btrfs: fix race between swap file activation and snapshot creation btrfs: fix stale data exposure after cloning a hole with NO_HOLES enabled Ira Weiny (1): btrfs: fix raid6 qstripe kmap Johannes Thumshirn (1): btrfs: zoned: fix deadlock on log sync Josef Bacik (2): btrfs: tree-checker: do not error out if extent ref hash doesn't match btrfs: avoid double put of block group when emptying cluster Nikolay Borisov (1): btrfs: fix race between extent freeing/allocation when using bitmaps Qu Wenruo (2): btrfs: make btrfs_submit_compressed_read() subpage compatible btrfs: make check_compressed_csum() to be subpage compatible fs/btrfs/block-group.c | 33 +++- fs/btrfs/block-group.h | 9 +++ fs/btrfs/compression.c | 62 +++-- fs/btrfs/ctree.h| 5 fs/btrfs/free-space-cache.c | 14 +- fs/btrfs/inode.c| 44 +++- fs/btrfs/raid56.c | 21 --- fs/btrfs/reflink.c | 18 + fs/btrfs/scrub.c| 9 ++- fs/btrfs/tree-checker.c | 16 +++- fs/btrfs/tree-log.c | 3 --- 11 files changed, 175 insertions(+), 59 deletions(-)
Re: [GIT PULL] Btrfs updates for 5.12
The pull request you sent on Tue, 16 Feb 2021 13:56:46 +0100: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.12-tag has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/6f3952cbe00b74739f540981d1afe84cd4dac879 Thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/prtracker.html
[GIT PULL] Btrfs updates for 5.12
Hi, this update brings updates of space handling, performance improvements or bug fixes. The subpage block size and zoned mode features have reached state where they're usable but with limitations. The branch merges cleanly on top of current master, there are some minor conflicts reported by linux-next in iov_iter or kmap conversion. Please pull, thanks. - Performance or related - do not block on deleted block group mutex in the cleaner, avoids some long stalls - improved flushing: make it work better with ticket space reservations and avoid excessive transaction commits in some scenarios, slightly improves throughput for random write load - preemptive background flushing: separate the logic from ticket reservations, improve the accounting and decisions when to flush in low space conditions - less lock contention related to running delayed refs, let just one thread do the flushing when there are many inside transaction commit - dbench workload improvements: avoid unnecessary work when logging inodes, fewer fallbacks to transaction commit and thus less waiting for it (+7% throughput, -20% latency) - Core - subpage block size - currently read-only support - refactor and generalize code where sectorsize is assumed to be page size, add the subpage handling everywhere - the read-write support is on the way, page sizes are still limited to 4K or 64K - zoned mode, first working version but with limitations - SMR/ZBC/ZNS friendly allocation mode, utilizing the "no fixed location for structures" and chunked allocation - superblock as the only fixed data structure needs special handling, uses 2 consecutive zones as a ring buffer - tree-log support with a dedicated block group to avoid unordered writes - emulated zones on non-zoned devices - not yet working - all non-single block group profiles, requires more zone write pointer synchronization between the multiple block groups - fitrim due to dependency on space cache, can be implemented - Fixes - ref-verify: proper tree owner and node level tracking - fix pinned byte accounting, causing some early ENOSPC now more likely due to other changes in delayed refs - Other - error handling fixes and improvements - more error injection points - more function documentation - more and updated tracepoints - subset of W=1 checked by default - update comments to allow more automatic kdoc parameter checks The following changes since commit e0756cfc7d7cd08c98a53b6009c091a3f6a50be6: Merge tag 'trace-v5.11-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace (2021-02-08 11:32:39 -0800) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.12-tag for you to fetch changes up to 9d294a685fbcb256ce8c5f7fd88a7596d0f52a8a: btrfs: zoned: enable to mount ZONED incompat flag (2021-02-09 02:52:24 +0100) Abaci Team (1): btrfs: simplify condition in __btrfs_run_delayed_items Filipe Manana (10): btrfs: send: remove stale code when checking for shared extents btrfs: remove wrong comment for can_nocow_extent() btrfs: remove unnecessary directory inode item update when deleting dir entry btrfs: stop setting nbytes when filling inode item for logging btrfs: avoid logging new ancestor inodes when logging new inode btrfs: skip logging directories already logged when logging all parents btrfs: skip logging inodes already logged when logging new entries btrfs: remove unnecessary check_parent_dirs_for_sync() btrfs: make concurrent fsyncs wait less when waiting for a transaction commit btrfs: fix extent buffer leak on failure to copy root Johannes Thumshirn (7): block: add bio_add_zone_append_page btrfs: release path before calling to btrfs_load_block_group_zone_info btrfs: zoned: do not load fs_info::zoned from incompat flag btrfs: zoned: allow zoned filesystems on non-zoned block devices btrfs: zoned: check if bio spans across an ordered extent btrfs: zoned: cache if block group is on a sequential zone btrfs: save irq flags when looking up an ordered extent Josef Bacik (34): btrfs: fix error handling in commit_fs_roots btrfs: allow error injection for btrfs_search_slot and btrfs_cow_block btrfs: noinline btrfs_should_cancel_balance btrfs: ref-verify: pass down tree block level when building refs btrfs: ref-verify: make sure owner is set for all refs btrfs: keep track of the root owner for relocation reads btrfs: do not cleanup upper nodes in btrfs_backref_cleanup_node btrfs: handle space_info::total_bytes_pinned inside the delayed ref itself btrfs: account
Re: [GIT PULL] Btrfs fix for 5.11-rc8
The pull request you sent on Sat, 13 Feb 2021 14:02:31 +0100: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.11-rc7-tag has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/e42ee56fe59759023cb252fabb3d6f279fe8cec8 Thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/prtracker.html
[GIT PULL] Btrfs fix for 5.11-rc8
Hi, a regression fix caused by a refactoring in 5.11. A corrupted superblock wouldn't be detected by checksum verification due to wrongly placed initialization of the checksum length, thus making memcmp always work. I've verified it manually and ran other test suites before sending this. Please pull, thanks. The following changes since commit 9ad6d91f056b99dbe59a262810cb342519ea8d39: btrfs: fix log replay failure due to race with space cache rebuild (2021-01-25 18:44:53 +0100) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.11-rc7-tag for you to fetch changes up to 83c68bbcb6ac2dbbcaf12e2281a29a9f73b97d0f: btrfs: initialize fs_info::csum_size earlier in open_ctree (2021-02-12 14:48:24 +0100) Su Yue (1): btrfs: initialize fs_info::csum_size earlier in open_ctree fs/btrfs/disk-io.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
Re: [GIT PULL] Btrfs fixes for 5.11-rc6
The pull request you sent on Sat, 30 Jan 2021 01:35:38 +0100: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.11-rc5-tag has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/c05d51c773fb365bdbd683b3e4e80679c8b8b176 Thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/prtracker.html
Re: [GIT PULL] Btrfs fixes for 5.11-rc6
On Fri, Jan 29, 2021 at 4:37 PM David Sterba wrote: > > I'm not sure the first post of this pull request made it through so > sending again. Already merged a few hours ago as commit c05d51c773fb. But you may have fallen afoul of the "either lkml or lore is sick" issue, so pr-tracker-bot isn't working. We've had a few of those lately. Linus
[GIT PULL] Btrfs fixes for 5.11-rc6
Hi, I'm not sure the first post of this pull request made it through so sending again. A few more fixes for a late rc: - fix lockdep complaint on 32bit arches and also remove an unsafe memory use due to device vs filesystem lifetime - two fixes for free space tree - race during log replay and cache rebuild, now more likely to happen due to changes in this dev cycle - possible free space tree corruption with online conversion during initial tree population Please pull, thanks. The following changes since commit 34d1eb0e599875064955a74712f08ff14c8e3d5f: btrfs: don't clear ret in btrfs_start_dirty_block_groups (2021-01-18 16:00:11 +0100) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.11-rc5-tag for you to fetch changes up to 9ad6d91f056b99dbe59a262810cb342519ea8d39: btrfs: fix log replay failure due to race with space cache rebuild (2021-01-25 18:44:53 +0100) Filipe Manana (1): btrfs: fix log replay failure due to race with space cache rebuild Josef Bacik (1): btrfs: fix possible free space tree corruption with online conversion Su Yue (1): btrfs: fix lockdep warning due to seqcount_mutex on 32bit arch fs/btrfs/block-group.c | 10 +++- fs/btrfs/ctree.h | 3 +++ fs/btrfs/extent-tree.c | 61 ++ fs/btrfs/free-space-tree.c | 10 +++- fs/btrfs/volumes.c | 2 +- fs/btrfs/volumes.h | 11 + 6 files changed, 46 insertions(+), 51 deletions(-)
Re: [GIT PULL] Btrfs fixes for 5.11-rc5
The pull request you sent on Wed, 20 Jan 2021 22:49:46 +0100: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.11-rc4-tag has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/9791581c049c10929e97098374dd1716a81fefcc Thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/prtracker.html
[GIT PULL] Btrfs fixes for 5.11-rc5
Hi, a few more one line fixes for various bugs, stable material. - fix send when emitting clone operation from the same file and root - fix double free on error when cleaning backrefs - lockdep fix during relocation - handle potential error during reloc when starting transaction - skip running delayed refs during commit (leftover from code removal in this dev cycle) Please pull thanks. The following changes since commit e076ab2a2ca70a0270232067cd49f76cd92efe64: btrfs: shrink delalloc pages instead of full inodes (2021-01-08 16:36:44 +0100) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.11-rc4-tag for you to fetch changes up to 34d1eb0e599875064955a74712f08ff14c8e3d5f: btrfs: don't clear ret in btrfs_start_dirty_block_groups (2021-01-18 16:00:11 +0100) David Sterba (1): btrfs: no need to run delayed refs after commit_fs_roots during commit Filipe Manana (1): btrfs: send: fix invalid clone operations when cloning from the same file and root Josef Bacik (4): btrfs: don't get an EINTR during drop_snapshot for reloc btrfs: do not double free backref nodes on error btrfs: fix lockdep splat in btrfs_recover_relocation btrfs: don't clear ret in btrfs_start_dirty_block_groups fs/btrfs/backref.c | 2 +- fs/btrfs/block-group.c | 3 ++- fs/btrfs/extent-tree.c | 10 +- fs/btrfs/send.c| 15 +++ fs/btrfs/transaction.c | 8 fs/btrfs/volumes.c | 2 ++ 6 files changed, 29 insertions(+), 11 deletions(-)
Re: [GIT PULL] Btrfs fixes for 5.11-rc4
The pull request you sent on Mon, 11 Jan 2021 22:09:55 +0100: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.11-rc3-tag has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/6e68b9961ff690ace07fac22c3c7752882ecc40a Thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/prtracker.html
[GIT PULL] Btrfs fixes for 5.11-rc4
Hi, more material for stable trees. Please pull, thanks. - tree-checker: check item end overflow - fix false warning during relocation regarding extent type - fix inode flushing logic, caused notable performance regression (since 5.10) - debugging fixups: - print correct offset for reloc tree key - pass reliable fs_info pointer to error reporting helper The following changes since commit a8cc263eb58ca133617662a5a5e07131d0ebf299: btrfs: run delayed iputs when remounting RO to avoid leaking them (2020-12-18 15:00:08 +0100) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.11-rc3-tag for you to fetch changes up to e076ab2a2ca70a0270232067cd49f76cd92efe64: btrfs: shrink delalloc pages instead of full inodes (2021-01-08 16:36:44 +0100) Josef Bacik (2): btrfs: print the actual offset in btrfs_root_name btrfs: shrink delalloc pages instead of full inodes Qu Wenruo (1): btrfs: reloc: fix wrong file extent type check to avoid false ENOENT Su Yue (2): btrfs: prevent NULL pointer dereference in extent_io_tree_panic btrfs: tree-checker: check if chunk item end overflows fs/btrfs/disk-io.c | 2 +- fs/btrfs/extent_io.c| 4 +--- fs/btrfs/inode.c| 60 +++-- fs/btrfs/print-tree.c | 10 - fs/btrfs/print-tree.h | 2 +- fs/btrfs/relocation.c | 7 +- fs/btrfs/space-info.c | 4 +++- fs/btrfs/tree-checker.c | 7 ++ 8 files changed, 67 insertions(+), 29 deletions(-)
Re: [GIT PULL] Btrfs fixes for 5.11-rc3
The pull request you sent on Wed, 6 Jan 2021 12:48:12 +0100: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.11-rc2-tag has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/71c061d2443814de15e177489d5cc00a4a253ef3 Thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/prtracker.html
[GIT PULL] Btrfs fixes for 5.11-rc3
Hi, a few more fixes that arrived before the end of the year. Please pull, thanks. - a bunch of fixes related to transaction handle lifetime wrt various operations (umount, remount, qgroup scan, orphan cleanup) - async discard scheduling fixes - fix item size calculation when item keys collide for extend refs (hardlinks) - fix qgroup flushing from running transaction - fix send, wrong file path when there is an inode with a pending rmdir - fix deadlock when cloning inline extent and low on free metadata space The following changes since commit b42fe98c92698d2a10094997e5f4d2dd968fd44f: btrfs: scrub: allow scrub to work with subpage sectorsize (2020-12-09 19:16:11 +0100) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.11-rc2-tag for you to fetch changes up to a8cc263eb58ca133617662a5a5e07131d0ebf299: btrfs: run delayed iputs when remounting RO to avoid leaking them (2020-12-18 15:00:08 +0100) Filipe Manana (7): btrfs: fix deadlock when cloning inline extent and low on free metadata space btrfs: send: fix wrong file path when there is an inode with a pending rmdir btrfs: fix transaction leak and crash after RO remount caused by qgroup rescan btrfs: fix transaction leak and crash after cleaning up orphans on RO mount btrfs: fix race between RO remount and the cleaner task btrfs: add assertion for empty list of transactions at late stage of umount btrfs: run delayed iputs when remounting RO to avoid leaking them Josef Bacik (1): btrfs: tests: initialize test inodes location Pavel Begunkov (3): btrfs: fix async discard stall btrfs: fix racy access to discard_ctl data btrfs: merge critical sections of discard lock in workfn Qu Wenruo (1): btrfs: qgroup: don't try to wait flushing if we're already holding a transaction ethanwu (1): btrfs: correctly calculate item size used when item key collision happens fs/btrfs/btrfs_inode.h | 9 ++ fs/btrfs/ctree.c | 24 +-- fs/btrfs/ctree.h | 29 -- fs/btrfs/dev-replace.c | 2 +- fs/btrfs/discard.c | 70 +++- fs/btrfs/disk-io.c | 13 fs/btrfs/extent-tree.c | 2 ++ fs/btrfs/file-item.c | 2 ++ fs/btrfs/inode.c | 15 +++--- fs/btrfs/ioctl.c | 2 +- fs/btrfs/qgroup.c| 43 +++ fs/btrfs/reflink.c | 15 ++ fs/btrfs/send.c | 49 +++ fs/btrfs/space-info.c| 2 +- fs/btrfs/super.c | 40 +++-- fs/btrfs/tests/btrfs-tests.c | 10 +-- fs/btrfs/tests/inode-tests.c | 9 -- fs/btrfs/volumes.c | 4 +-- 18 files changed, 243 insertions(+), 97 deletions(-)
Re: [GIT PULL] Btrfs updates for 5.11
The pull request you sent on Mon, 14 Dec 2020 16:15:53 +0100: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.11-tag has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/f1ee3b8829006b3fda999f00f0059aa327e3f3d0 Thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/prtracker.html
Re: [GIT PULL] Btrfs fixes for 5.4-rc5
The pull request you sent on Tue, 22 Oct 2019 15:52:07 +0200: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.4-rc4-tag has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/54955e3bfde54dcdd29694741f2ddfc6b763b193 Thank you! -- Deet-doot-dot, I am a bot. https://korg.wiki.kernel.org/userdoc/prtracker
Re: [GIT PULL] Btrfs fixes for 5.4-rc5
On Tue, Oct 22, 2019 at 03:52:07PM +0200, David Sterba wrote: > * fix during file sync, the full-sync status might get dropped > externally, eg. by background witeback under some circumstances Please replace the above merge log entry with * fix race when handling full sync flag The above wording was wrong and misleading, the changelog has all the deatils and my attempt to condense it did not work very well. Thanks.
[GIT PULL] Btrfs fixes for 5.4-rc5
Hi, please pull the following updates, all stable material. Thanks. Changes: * fixes of error handling cleanup of metadata accounting with qgroups enabled * fix swapped values for qgroup tracepoints * fix during file sync, the full-sync status might get dropped externally, eg. by background witeback under some circumstances * don't start unused worker thread, functionality removed already The following changes since commit 431d39887d6273d6d84edf3c2eab09f4200e788a: btrfs: silence maybe-uninitialized warning in clone_range (2019-10-08 13:14:55 +0200) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.4-rc4-tag for you to fetch changes up to ba0b084ac309283db6e329785c1dc4f45fdbd379: Btrfs: check for the full sync flag while holding the inode lock during fsync (2019-10-17 20:36:02 +0200) David Sterba (1): btrfs: don't needlessly create extent-refs kernel thread Filipe Manana (3): Btrfs: add missing extents release on file extent cluster relocation error Btrfs: fix qgroup double free after failure to reserve metadata for delalloc Btrfs: check for the full sync flag while holding the inode lock during fsync Qu Wenruo (4): btrfs: block-group: Fix a memory leak due to missing btrfs_put_block_group() btrfs: qgroup: Always free PREALLOC META reserve in btrfs_delalloc_release_extents() btrfs: tracepoints: Fix wrong parameter order for qgroup events btrfs: tracepoints: Fix bad entry members of qgroup events fs/btrfs/block-group.c | 1 + fs/btrfs/ctree.h | 5 + fs/btrfs/delalloc-space.c| 7 ++- fs/btrfs/disk-io.c | 6 -- fs/btrfs/file.c | 43 --- fs/btrfs/inode-map.c | 4 ++-- fs/btrfs/inode.c | 12 ++-- fs/btrfs/ioctl.c | 6 ++ fs/btrfs/qgroup.c| 4 ++-- fs/btrfs/relocation.c| 9 + include/trace/events/btrfs.h | 3 ++- 11 files changed, 43 insertions(+), 57 deletions(-)
Re: [GIT PULL] Btrfs fixes for 5.4-rc3
The pull request you sent on Thu, 10 Oct 2019 16:48:51 +0200: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.4-rc2-tag has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/f8779876d4a79d243870a5b5d60009e4ec6f22f4 Thank you! -- Deet-doot-dot, I am a bot. https://korg.wiki.kernel.org/userdoc/prtracker
[GIT PULL] Btrfs fixes for 5.4-rc3
Hi, a few more stabitly fixes, one build warning fix. Changes: - fix inode allocation under NOFS context - fix leak in fiemap due to concurrent append writes - fix log-root tree updates - fix balance convert of single profile on 32bit architectures - silence false positive warning on old GCCs (code moved in rc1) Please pull, thanks. The following changes since commit d4e204948fe3e0dc8e1fbf3f8f3290c9c2823be3: btrfs: qgroup: Fix reserved data space leak if we have multiple reserve calls (2019-09-27 15:24:34 +0200) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.4-rc2-tag for you to fetch changes up to 431d39887d6273d6d84edf3c2eab09f4200e788a: btrfs: silence maybe-uninitialized warning in clone_range (2019-10-08 13:14:55 +0200) Austin Kim (1): btrfs: silence maybe-uninitialized warning in clone_range Filipe Manana (1): Btrfs: fix memory leak due to concurrent append writes with fiemap Josef Bacik (3): btrfs: fix incorrect updating of log root tree btrfs: allocate new inode in NOFS context btrfs: fix uninitialized ret in ref-verify Zygo Blaxell (1): btrfs: fix balance convert to single on 32-bit host CPUs fs/btrfs/file.c | 13 - fs/btrfs/inode.c | 3 +++ fs/btrfs/ref-verify.c | 2 +- fs/btrfs/send.c | 2 +- fs/btrfs/tree-log.c | 36 +++- fs/btrfs/volumes.c| 6 +- 6 files changed, 49 insertions(+), 13 deletions(-)
Re: [GIT PULL] Btrfs fixes for 5.4-rc2
The pull request you sent on Mon, 30 Sep 2019 16:25:08 +0200: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.4-rc1-tag has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/bb48a59135926ece9b1361e8b96b33fc658830bc Thank you! -- Deet-doot-dot, I am a bot. https://korg.wiki.kernel.org/userdoc/prtracker
[GIT PULL] Btrfs fixes for 5.4-rc2
Hi, a bunch of fixes that accumulated in recent weeks, mostly material for stable. Summary: - fix for regression from 5.3 that prevents to use balance convert with single profile - qgroup fixes: rescan race, accounting leak with multiple writers, potential leak after io failure recovery - fix for use after free in relocation (reported by KASAN) - other error handling fixups Please pull, thanks. The following changes since commit 6af112b11a4bc1b560f60a618ac9c1dcefe9836e: btrfs: Relinquish CPUs in btrfs_compare_trees (2019-09-09 14:59:20 +0200) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.4-rc1-tag for you to fetch changes up to d4e204948fe3e0dc8e1fbf3f8f3290c9c2823be3: btrfs: qgroup: Fix reserved data space leak if we have multiple reserve calls (2019-09-27 15:24:34 +0200) Dennis Zhou (1): btrfs: adjust dirty_metadata_bytes after writeback failure of extent buffer Filipe Manana (3): Btrfs: fix selftests failure due to uninitialized i_mode in test inodes Btrfs: fix missing error return if writeback for extent buffer never started Btrfs: fix race setting up and completing qgroup rescan workers Qu Wenruo (4): btrfs: relocation: fix use-after-free on dead relocation roots btrfs: Fix a regression which we can't convert to SINGLE profile btrfs: qgroup: Fix the wrong target io_tree when freeing reserved data space btrfs: qgroup: Fix reserved data space leak if we have multiple reserve calls fs/btrfs/extent_io.c | 13 + fs/btrfs/qgroup.c| 38 +++--- fs/btrfs/relocation.c| 9 - fs/btrfs/tests/btrfs-tests.c | 8 +++- fs/btrfs/volumes.c | 8 +++- 5 files changed, 58 insertions(+), 18 deletions(-)
Re: [GIT PULL] Btrfs updates for 5.4
The pull request you sent on Mon, 16 Sep 2019 13:55:05 +0200: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.4 has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/7d14df2d280fb7411eba2eb96682da0683ad97f6 Thank you! -- Deet-doot-dot, I am a bot. https://korg.wiki.kernel.org/userdoc/prtracker
Re: [GIT PULL] Btrfs updates for 5.4
On Mon, Sep 16, 2019 at 01:55:05PM +0200, David Sterba wrote: > > The following changes since commit f74c2bb98776e2de508f4d607cd519873065118e: > > Linux 5.3-rc8 (2019-09-08 13:33:15 -0700) > > are available in the Git repository at: > > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.4 Correction: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.4-tag
[GIT PULL] Btrfs updates for 5.4
Hi, this update continues with work on code refactoring, sanity checks and space handling. There are some less user visible changes, nothing that would particularly stand out. Please pull, thanks. User visible changes: - tree checker, more sanity checks of: - ROOT_ITEM (key, size, generation, level, alignment, flags) - EXTENT_ITEM and METADATA_ITEM checks (key, size, offset, alignment, refs) - tree block reference items - EXTENT_DATA_REF (key, hash, offset) - deprecate flag BTRFS_SUBVOL_CREATE_ASYNC for subvolume creation ioctl, scheduled removal in 5.7 - delete stale and unused UAPI definitions BTRFS_DEV_REPLACE_ITEM_STATE_* - improved export of debugging information available via existing sysfs directory structure - try harder to delete relations between qgroups and allow to delete orphan entries - remove unreliable space checks before relocation starts Core: - space handling: - improved ticket reservations and other high level logic in order to remove special cases - factor flushing infrastructure and use it for different contexts, allows to remove some special case handling - reduce metadata reservation when only updating inodes - reduce global block reserve minimum size (affects small filesystems) - improved overcommit logic wrt global block reserve - tests: - fix memory leaks in extent IO tree - catch all TRIM range Fixes: - fix ENOSPC errors, leading to transaction aborts, when cloning extents - several fixes for inode number cache (mount option inode_cache) - fix potential soft lockups during send when traversing large trees - fix unaligned access to space cache pages with SLUB debug on (PowerPC) Other: - refactoring public/private functions, moving to new or more appropriate files - defines converted to enums - error handling improvements - more assertions and comments - old code deletion The following changes since commit f74c2bb98776e2de508f4d607cd519873065118e: Linux 5.3-rc8 (2019-09-08 13:33:15 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.4 for you to fetch changes up to 6af112b11a4bc1b560f60a618ac9c1dcefe9836e: btrfs: Relinquish CPUs in btrfs_compare_trees (2019-09-09 14:59:20 +0200) Anand Jain (7): btrfs: reset device stat using btrfs_dev_stat_set btrfs: opencode reset of all device stats btrfs: replace: BTRFS_DEV_REPLACE_ITEM_STATE_x defines should go btrfs: dev stats item key conversion per cpu type is not needed btrfs: dev stat drop useless goto btrfs: proper error handling when invalid device is found in find_next_devid btrfs: use proper error values on allocation failure in clone_fs_devices Arnd Bergmann (1): btrfs: reduce stack usage for btrfsic_process_written_block Christophe Leroy (1): btrfs: fix allocation of free space cache v1 bitmap pages Dan Carpenter (1): btrfs: fix error pointer check in __btrfs_map_block() David Sterba (33): btrfs: assert extent map tree lock in add_extent_mapping btrfs: assert tree mod log lock in __tree_mod_log_insert btrfs: remove unused btrfs_device::flush_bio_sent btrfs: remove unused key type set/get helpers btrfs: tree-log: convert defines to enums btrfs: async-thread: convert defines to enums btrfs: tree-log: use symbolic name for first replay stage btrfs: sysfs: add debugging exports btrfs: delete debugfs code btrfs: move sysfs declarations out of ctree.h btrfs: factor sysfs code out of link_block_group btrfs: sysfs: unexport btrfs_raid_ktype btrfs: factor out sysfs code for creating space infos btrfs: sysfs: unexport space_info_ktype btrfs: sysfs: replace direct access to feature set names with a helper btrfs: factor out sysfs code for sending device uevent btrfs: factor out sysfs code for deleting block group and space infos btrfs: factor out sysfs code for updating sprout fsid btrfs: cleanup kobject.h includes btrfs: sysfs: move type conversion helpers to sysfs.c btrfs: sysfs: move helper macros to sysfs.c btrfs: define compression levels statically btrfs: compression: replace set_level callbacks by a common helper btrfs: move cond_wake_up functions out of ctree btrfs: move math functions to misc.h btrfs: move private raid56 definitions from ctree.h btrfs: rename and export read_node_slot btrfs: move functions for tree compare to send.c btrfs: move struct io_ctl to free-space-cache.h btrfs: move dev_stats helpers to volumes.c btrfs: define separate btrfs_set/get_XX helpers btrfs: assume valid token for btrfs_set/get_token helpers btrfs: tie extent buffer and it's token together Eric Sandeen (1): btrfs: us
Re: [GIT PULL] Btrfs fixes for 5.3-rc5
The pull request you sent on Sun, 18 Aug 2019 13:58:46 +0200: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.3-rc4-tag has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/3039fadf2bfdc104dc963820c305778c7c1a6229 Thank you! -- Deet-doot-dot, I am a bot. https://korg.wiki.kernel.org/userdoc/prtracker
[GIT PULL] Btrfs fixes for 5.3-rc5
Hi, please pull two fixes that pop during testing: * fix for sysfs-related code that adds/removes block groups, warnings appear during several fstests in connection with sysfs updates in 5.3, the fix essentially replaces a workaround with scope NOFS and applies to 5.2-based branch too * add sanity check of trim range Thanks. The following changes since commit a6d155d2e363f26290ffd50591169cb96c2a609e: Btrfs: fix deadlock between fiemap and transaction commits (2019-07-30 18:25:12 +0200) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.3-rc4-tag for you to fetch changes up to 07301df7d2fc220d3de5f7ad804dcb941400cb00: btrfs: trim: Check the range passed into to prevent overflow (2019-08-07 16:42:39 +0200) Filipe Manana (1): Btrfs: fix sysfs warning and missing raid sysfs directories Qu Wenruo (1): btrfs: trim: Check the range passed into to prevent overflow fs/btrfs/ctree.h | 4 --- fs/btrfs/disk-io.c | 2 -- fs/btrfs/extent-tree.c | 71 +- fs/btrfs/volumes.c | 13 - 4 files changed, 35 insertions(+), 55 deletions(-)
Re: [GIT PULL] Btrfs fixes for 5.3-rc3
The pull request you sent on Fri, 2 Aug 2019 18:50:19 +0200: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.3-rc2-tag has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/d38c3fa6f959b8b5b167f120d70d66418714dbe4 Thank you! -- Deet-doot-dot, I am a bot. https://korg.wiki.kernel.org/userdoc/prtracker
[GIT PULL] Btrfs fixes for 5.3-rc3
Hi, please pull the branch with the following fixes: * tiny race window during 2 transactions aborting at the same time can accidentally lead to a commit * regression fix, possible deadlock during fiemap * fix for an old bug when incremental send can fail on a file that has been deduplicated in a special way Thanks. The following changes since commit a3b46b86ca76d7f9d487e6a0b594fd1984e0796e: btrfs: fix extent_state leak in btrfs_lock_and_flush_ordered_range (2019-07-26 12:21:22 +0200) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.3-rc2-tag for you to fetch changes up to a6d155d2e363f26290ffd50591169cb96c2a609e: Btrfs: fix deadlock between fiemap and transaction commits (2019-07-30 18:25:12 +0200) Filipe Manana (3): Btrfs: fix incremental send failure after deduplication Btrfs: fix race leading to fs corruption after transaction abort Btrfs: fix deadlock between fiemap and transaction commits fs/btrfs/backref.c | 2 +- fs/btrfs/send.c| 77 ++ fs/btrfs/transaction.c | 32 ++--- fs/btrfs/transaction.h | 3 ++ 4 files changed, 47 insertions(+), 67 deletions(-)
Re: [GIT PULL] Btrfs fixes for 5.3-rc2
The pull request you sent on Fri, 26 Jul 2019 18:42:24 +0200: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.3-rc1-tag has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/4792ba1f1ff0db30369f7016c1611fda3f84b895 Thank you! -- Deet-doot-dot, I am a bot. https://korg.wiki.kernel.org/userdoc/prtracker
[GIT PULL] Btrfs fixes for 5.3-rc2
Hi, please pull two regression fixes: * hangs caused by a missing barrier in the locking code * memory leaks of extent_state due to bad handling of a cached pointer Thanks. The following changes since commit 373c3b80e459cb57c34381b928588a3794eb5bbd: btrfs: don't leak extent_map in btrfs_get_io_geometry() (2019-07-17 17:03:36 +0200) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.3-rc1-tag for you to fetch changes up to a3b46b86ca76d7f9d487e6a0b594fd1984e0796e: btrfs: fix extent_state leak in btrfs_lock_and_flush_ordered_range (2019-07-26 12:21:22 +0200) Naohiro Aota (1): btrfs: fix extent_state leak in btrfs_lock_and_flush_ordered_range Nikolay Borisov (1): btrfs: Fix deadlock caused by missing memory barrier fs/btrfs/locking.c | 9 ++--- fs/btrfs/ordered-data.c | 11 ++- 2 files changed, 12 insertions(+), 8 deletions(-)
Re: [GIT PULL] Btrfs fixes for 5.3-rc2
The pull request you sent on Mon, 22 Jul 2019 14:18:08 +0200: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.3-rc1-tag has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/21c730d7347126886c40453feb973161f4ae3fb3 Thank you! -- Deet-doot-dot, I am a bot. https://korg.wiki.kernel.org/userdoc/prtracker
[GIT PULL] Btrfs fixes for 5.3-rc2
Hi, please pull the following branch with fixes for leaks caused by recently merged patches, one build fix and a fix to prevent mixing of incompatible features. Thanks. The following changes since commit e02d48eaaed77f6c36916a7aa65c451e1f9d9aab: btrfs: fix memory leak of path on error return path (2019-07-05 18:47:57 +0200) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.3-rc1-tag for you to fetch changes up to 373c3b80e459cb57c34381b928588a3794eb5bbd: btrfs: don't leak extent_map in btrfs_get_io_geometry() (2019-07-17 17:03:36 +0200) Johannes Thumshirn (2): btrfs: free checksum hash on in close_ctree btrfs: don't leak extent_map in btrfs_get_io_geometry() Qu Wenruo (1): btrfs: inode: Don't compress if NODATASUM or NODATACOW set YueHaibing (1): btrfs: Fix build error while LIBCRC32C is module fs/btrfs/Kconfig | 1 + fs/btrfs/disk-io.c | 1 + fs/btrfs/inode.c | 24 +++- fs/btrfs/volumes.c | 10 +++--- 4 files changed, 32 insertions(+), 4 deletions(-)
Re: [GIT PULL] Btrfs updates for 5.3
The pull request you sent on Mon, 15 Jul 2019 10:57:01 +0200: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.3-tag has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/a18f8775419d3df282dd83efdb51c5a64d092f31 Thank you! -- Deet-doot-dot, I am a bot. https://korg.wiki.kernel.org/userdoc/prtracker
[GIT PULL] Btrfs updates for 5.3
Hi, there's majority of cleanups and refactoring, no big new features made it to the final branch, the rest are fixes. No merge conflicts. Please pull, thanks. Hilights: - 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 The following changes since commit 6fbc7275c7a9ba97877050335f290341a1fd8dbf: Linux 5.2-rc7 (2019-06-30 11:25:36 +0800) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.3-tag for you to fetch changes up to e02d48eaaed77f6c36916a7aa65c451e1f9d9aab: btrfs: fix memory leak of path on error return path (2019-07-05 18:47:57 +0200) Arnd Bergmann (1): btrfs: shut up bogus -Wmaybe-uninitialized warning Colin Ian King (1): btrfs: fix memory leak of path on error return path David Sterba (32): btrfs: detect fast implementation of crc32c on all architectures btrfs: fiemap: preallocate ulists for btrfs_check_shared btrfs: fix minimum number of chunk errors for DUP btrfs: raid56: allow the exact minimum number of devices for balance convert btrfs: remove mapping tree structures indirection btrfs: use raid_attr table in get_profile_num_devs btrfs: use raid_attr in btrfs_chunk_max_errors btrfs: use raid_attr to get allowed profiles for balance conversion btrfs: use raid_attr table to find profiles for integrity lowering btrfs: use raid_attr table for btrfs_bg_type_to_factor btrfs: factor out helper for counting data stripes btrfs: use u8 for raid_array members btrfs: factor out devs_max setting in __btrfs_alloc_chunk btrfs: refactor helper for bg flags to name conversion btrfs: constify map parameter for nr_parity_stripes and nr_data_stripes btrfs: read number of data stripes from map only once btrfs: use file:line format for assertion report btrfs: tests: add locks around add_extent_mapping btrfs: assert delayed ref lock in btrfs_find_delayed_ref_head btrfs: switch extent_buffer blocking_writers from atomic to int btrfs: switch extent_buffer spinning_writers from atomic to int btrfs: switch extent_buffer write_locks from atomic to int btrfs: raid56: clear incompat block group flags after removing the last one btrfs: add mask for all RAID1 types btrfs: use mask for RAID56 profiles btrfs: document BTRFS_MAX_MIRRORS btrfs: improve messages when updating feature flags btrfs: use common helpers for extent IO state insertion messages btrfs: drop default value assignments in enums btrfs: use raid_attr to adjust minimal stripe size in btrfs_calc_avail_data_space btrfs: use raid_attr for minimum stripe count in btrfs_calc_avail_data_space btrfs: lift bio_set_dev from bio allocation helpers Filipe Manana (4): Btrfs: fix data loss after inode eviction, renaming it, and fsync it Btrfs: prevent send failures and crashes due to concurrent relocation Btrfs: fix fsync not persisting dentry deletions due to inode evictions Btrfs: add missing inode version, ctime and mtime updates when punching hole Goldwyn Rodrigues (3): btrfs: Remove unused variable mode in btrfs_mount btrfs: Simplify update of space_info in __reserve_metadata_bytes() btrfs: Evaluate io_tree in find_lock_delalloc_range() Johannes Thumshirn (13): btrfs: use btrfs_csum_data() instead of directly calling crc32c btrfs: resurrect btrfs_crc32c() btrfs: use btrfs_crc32c{,_final}() in for free space cache btrfs: don't assume ordered sums to be 4 bytes btrfs: don't
Re: [GIT PULL] Btrfs fixes for 5.2-rc6
The pull request you sent on Tue, 18 Jun 2019 18:52:07 +0200: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.2-rc5-tag has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/bed3c0d84e7e25c8e0964d297794f4c215b01f33 Thank you! -- Deet-doot-dot, I am a bot. https://korg.wiki.kernel.org/userdoc/prtracker
[GIT PULL] Btrfs fixes for 5.2-rc6
Hi, please pull the following btrfs fixes: - regression where properties stored as xattrs are not properly persisted - a small readahead fix (the fstests testcase for that fix hangs on unpatched kernel, so we'd like get it merged to ease future testing) - fix a race during block group creation and deletion Thanks. The following changes since commit 8103d10b71610aa65a65d6611cd3ad3f3bd7beeb: btrfs: Always trim all unallocated space in btrfs_trim_free_extents (2019-06-07 14:52:05 +0200) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.2-rc5-tag for you to fetch changes up to 3763771cf60236caaf7ccc79cea244c63d7c49a0: Btrfs: fix failure to persist compression property xattr deletion on fsync (2019-06-17 16:37:17 +0200) Filipe Manana (2): Btrfs: fix race between block group removal and block group allocation Btrfs: fix failure to persist compression property xattr deletion on fsync Naohiro Aota (1): btrfs: start readahead also in seed devices fs/btrfs/extent-tree.c | 24 +--- fs/btrfs/ioctl.c | 2 -- fs/btrfs/reada.c | 5 + fs/btrfs/xattr.c | 6 +++--- 4 files changed, 21 insertions(+), 16 deletions(-)
Re: [GIT PULL] Btrfs fix for 5.2-rc5
The pull request you sent on Tue, 11 Jun 2019 18:16:28 +0200: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.2-rc4-tag has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/6fa425a2651515f8d262f2c1d972c6632e7c941d Thank you! -- Deet-doot-dot, I am a bot. https://korg.wiki.kernel.org/userdoc/prtracker
[GIT PULL] Btrfs fix for 5.2-rc5
Hi, here's one regression fix to TRIM ioctl. The range cannot be used as its meaning can be confusing regarding physical and logical addresses. This confusion in code led to potential corruptions when the range overlapped data. The original patch made it to several stable kernels and was promptly reverted, the version for master branch is different due to additional changes but the change is effectively the same. Please pull, thanks. The following changes since commit 06989c799f04810f6876900d4760c0edda369cf7: Btrfs: fix race updating log root item during fsync (2019-05-28 19:26:46 +0200) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.2-rc4-tag for you to fetch changes up to 8103d10b71610aa65a65d6611cd3ad3f3bd7beeb: btrfs: Always trim all unallocated space in btrfs_trim_free_extents (2019-06-07 14:52:05 +0200) Nikolay Borisov (1): btrfs: Always trim all unallocated space in btrfs_trim_free_extents fs/btrfs/extent-tree.c | 28 +++- 1 file changed, 3 insertions(+), 25 deletions(-)
Re: [GIT PULL] Btrfs fixes for 5.2-rc3
The pull request you sent on Thu, 30 May 2019 12:44:01 +0200: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.2-rc2-tag has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/318adf8e4bfdcb0bce1833824564b1f24278927b Thank you! -- Deet-doot-dot, I am a bot. https://korg.wiki.kernel.org/userdoc/prtracker
[GIT PULL] Btrfs fixes for 5.2-rc3
Hi, a few more fixes for bugs reported by users, fuzzing tools and regressions: * fix crashes in relocation * resuming interrupted balance operation does not properly clean up orphan trees * with enabled qgroups, resuming needs to be more careful about block groups due to limited context when updating qgroups * fsync and logging fixes found by fuzzing * incremental send fixes for no-holes and clone * fix spin lock type used in timer function for zstd No merge conflicts, please pull. Thanks. The following changes since commit 4e9845eff5a8027b5181d5bff56a02991fe46d48: Btrfs: tree-checker: detect file extent items with overlapping ranges (2019-05-16 14:33:51 +0200) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.2-rc2-tag for you to fetch changes up to 06989c799f04810f6876900d4760c0edda369cf7: Btrfs: fix race updating log root item during fsync (2019-05-28 19:26:46 +0200) Dennis Zhou (1): btrfs: correct zstd workspace manager lock to use spin_lock_bh() Filipe Manana (5): Btrfs: incremental send, fix file corruption when no-holes feature is enabled Btrfs: incremental send, fix emission of invalid clone operations Btrfs: fix fsync not persisting changed attributes of a directory Btrfs: fix wrong ctime and mtime of a directory after log replay Btrfs: fix race updating log root item during fsync Nikolay Borisov (1): btrfs: Ensure replaced device doesn't have pending chunk allocation Qu Wenruo (2): btrfs: reloc: Also queue orphan reloc tree for cleanup to avoid BUG_ON() btrfs: qgroup: Check bg while resuming relocation to avoid NULL pointer dereference fs/btrfs/dev-replace.c | 35 +++-- fs/btrfs/inode.c | 14 -- fs/btrfs/qgroup.c | 8 +++- fs/btrfs/relocation.c | 27 ++ fs/btrfs/send.c| 52 +++--- fs/btrfs/tree-log.c| 20 ++- fs/btrfs/zstd.c| 20 +-- 7 files changed, 128 insertions(+), 48 deletions(-)
Re: [GIT PULL] Btrfs fixes for 5.2-rc2
The pull request you sent on Mon, 20 May 2019 18:52:43 +0200: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.2-rc1-tag has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/f49aa1de98363b6c5fba4637678d6b0ba3d18065 Thank you! -- Deet-doot-dot, I am a bot. https://korg.wiki.kernel.org/userdoc/prtracker
[GIT PULL] Btrfs fixes for 5.2-rc2
Hi, the branch contains fixes, notable hilights: * fixes for some long-standing bugs in fsync that were quite hard to catch but now finaly fixed * some fixups to error handling paths that did not properly clean up (locking, memory) * fix to space reservation for inheriting properties No merge conflicts, please pull. Thanks. The following changes since commit b1c16ac978fd40ae636e629bb69a652df7eebdc2: btrfs: Use kvmalloc for allocating compressed path context (2019-05-02 13:48:19 +0200) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.2-rc1-tag for you to fetch changes up to 4e9845eff5a8027b5181d5bff56a02991fe46d48: Btrfs: tree-checker: detect file extent items with overlapping ranges (2019-05-16 14:33:51 +0200) Filipe Manana (4): Btrfs: do not abort transaction at btrfs_update_root() after failure to COW path Btrfs: avoid fallback to transaction commit during fsync of files with holes Btrfs: fix race between ranged fsync and writeback of adjacent ranges Btrfs: tree-checker: detect file extent items with overlapping ranges Johnny Chang (1): btrfs: Check the compression level before getting a workspace Josef Bacik (2): btrfs: don't double unlock on error in btrfs_punch_hole btrfs: use the existing reserved items for our first prop for inheritance Qu Wenruo (1): btrfs: extent-tree: Fix a bug that btrfs is unable to add pinned bytes Tobin C. Harding (2): btrfs: sysfs: Fix error path kobject memory leak btrfs: sysfs: don't leak memory when failing add fsid fs/btrfs/compression.c | 1 + fs/btrfs/extent-tree.c | 15 --- fs/btrfs/file.c | 16 +--- fs/btrfs/props.c| 30 ++ fs/btrfs/root-tree.c| 4 +--- fs/btrfs/sysfs.c| 7 ++- fs/btrfs/tree-checker.c | 49 + fs/btrfs/tree-log.c | 1 + 8 files changed, 97 insertions(+), 26 deletions(-)
Re: [GIT PULL] Btrfs updates for 5.1, part 1
The pull request you sent on Mon, 4 Mar 2019 20:20:53 +0100: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git > for-5.1-part1-tag has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/b1e243957e9b3ba8e820fb8583bdf18e7c737aa2 Thank you! -- Deet-doot-dot, I am a bot. https://korg.wiki.kernel.org/userdoc/prtracker
[GIT PULL] Btrfs updates for 5.1, part 1
Hi, the branch contains usual mix of new features, core changes and fixes; full list below. I'm planning 2nd pull request, with a few more fixes that arrived recently but too close to merge window, will send it next week. Please pull, thanks. New features: - support zstd compression levels - new ioctl to unregister a device from the module (ie. reverse of device scan) - scrub prints a message to log when it's about to start or finish Core changes: - qgroups can now skip part of a tree that does not get updated during relocation, because this does not affect the quota accounting, estimated speedup in run time is about 20% - the compression workspace management had to be enhanced due to zstd requirements - various enospc fixes, when there's high fragmentation the over-reservation can cause ENOSPC that might not happen after a flush, in such cases try to wait if the situation improves Fixes: - various ioctls could overwrite previous return value if copy_to_user fails, fix this so the original error is reported - more reclaim vs GFP_KERNEL fixes - other cleanups and refactoring - fix a (valid) lockdep warning in a test when device replace is destroying worker threads - make qgroup async transaction commit more aggressive, this avoids some 'quota limit reached' errors if there are not enough data to trigger transaction in order to flush - fix deadlock between snapshot deletion and quotas when backref walking is called from context that already holds the same locks - fsync fixes: - fix fsync after succession of renames of different files - fix fsync after succession of renames and unlink/rmdir The following changes since commit 5908e6b738e3357af42c10e1183753c70a0117a9: Linux 5.0-rc8 (2019-02-24 16:46:45 -0800) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.1-part1-tag for you to fetch changes up to f65e25e343cfc0e6f4db9a687c4085fad268325d: btrfs: Remove unnecessary casts in btrfs_read_root_item (2019-02-25 14:19:23 +0100) Anand Jain (11): btrfs: merge btrfs_find_device_missing_or_by_path() into parent btrfs: cleanup btrfs_find_device_by_devspec() btrfs: refactor btrfs_find_device() take fs_devices as argument btrfs: refactor btrfs_free_stale_devices() to get return value btrfs: merge btrfs_find_device and find_device btrfs: scrub: print messages when started or finished btrfs: introduce new ioctl to unregister a btrfs device btrfs: fix comment its device list mutex not volume lock btrfs: scrub: fix circular locking dependency warning btrfs: scrub: add scrub_lock lockdep check in scrub_workers_get btrfs: scrub: convert scrub_workers_refcnt to refcount_t Anders Roxell (1): btrfs: let the assertion expression compile in all configs Dan Carpenter (1): btrfs: drop the lock on error in btrfs_dev_replace_cancel Dan Robertson (1): btrfs: init csum_list before possible free David Sterba (9): btrfs: simplify workqueue name when allocating btrfs: split btrfs_set_lock_blocking_rw to read and write helpers btrfs: split btrfs_clear_lock_blocking_rw to read and write helpers btrfs: replace btrfs_set_lock_blocking_rw with appropriate helpers btrfs: open code now trivial btrfs_set_lock_blocking btrfs: simplify waiting loop in btrfs_tree_lock btrfs: merge btrfs_set_lock_blocking_rw with it's caller btrfs: scrub: add assertions for worker pointers btrfs: scrub: remove unused nocow worker pointer Dennis Zhou (12): btrfs: add helpers for compression type and level btrfs: rename workspaces_list to workspace_manager btrfs: manage heuristic workspace as index 0 btrfs: unify compression ops with workspace_manager btrfs: add helper methods for workspace manager init and cleanup btrfs: add compression interface in (get/put)_workspace btrfs: move to function pointers for get/put workspaces btrfs: plumb level through the compression interface btrfs: change set_level() to bound the level passed in btrfs: zstd use the passed through level instead of default btrfs: make zstd memory requirements monotonic btrfs: add zstd compression level support Filipe Manana (14): Btrfs: do not overwrite scrub error with fault error in scrub ioctl Btrfs: do not overwrite error return value in scrub progress ioctl Btrfs: do not overwrite error return value in the get device stats ioctl Btrfs: setup a nofs context for memory allocation at btrfs_create_tree() Btrfs: setup a nofs context for memory allocation at __btrfs_set_acl Btrfs: remove redundant check for swapfiles when reflinking Btrfs: do not overwrite error return value in the device replace ioctl
Re: [GIT PULL] Btrfs fixes for 4.15-rc2
On Mon, Feb 18, 2019 at 12:37:49PM +0200, Alex Lyakas wrote: > Hi David, > > > Btrfs: incremental send, fix wrong unlink path after renaming file > > (2017-11-28 17:15:30 +0100) > > > > > > David Sterba (2): > > btrfs: add missing device::flush_bio puts > Is there a reason that this one should not be tagged as "stable"? At > least the missing bio_put in free_fs_devices is not an error case, > and would happen every time. 2 years old, hard to remember if there was a reason or not. At that time, not all patches got cc:stable because patches with Fixes: tag were usually picked by stable team and that's what we relied on, as long as the patch applied. This worked and still works, though I've started to do more thorough review of various fixes against stable trees and add the tag eventually. The fix applies only to 4.14 stable, so it could be submitted there for inclusion.
Re: [GIT PULL] Btrfs fixes for 4.15-rc2
Hi David, > Btrfs: incremental send, fix wrong unlink path after renaming file > (2017-11-28 17:15:30 +0100) > > > David Sterba (2): > btrfs: add missing device::flush_bio puts Is there a reason that this one should not be tagged as "stable"? At least the missing bio_put in free_fs_devices is not an error case, and would happen every time. Thanks, Alex.
Re: [GIT PULL] Btrfs fixes for 5.0-rc5
The pull request you sent on Sun, 3 Feb 2019 10:48:46 +0100: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.0-rc4-tag has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/312b3a93dda6db9354b0c6b0f1868c1434e8c787 Thank you! -- Deet-doot-dot, I am a bot. https://korg.wiki.kernel.org/userdoc/prtracker
[GIT PULL] Btrfs fixes for 5.0-rc5
Hi, there are a few fixes that I'd like to have in the 5.0 release. Last rc was skipped because one fix had to be reworked and more testing was needed. Please pull, thanks. - regression fix: transaction commit can run away due to delayed ref waiting heuristic, this is not necessary now because of the proper reservation mechanism introduced in 5.0 - regression fix: potential crash due to use-before-check of an ERR_PTR return value - fix for transaction abort during transaction commit that needs to properly clean up pending block groups - fix deadlock during b-tree node/leaf splitting, when this happens on some of the fundamental trees, we must prevent new tree block allocation to re-enter indirectly via the block group flushing path - potential memory leak after errors during mount The following changes since commit fd340d0f68cc87badfc9efcb226f23a5428826a0: btrfs: wakeup cleaner thread when adding delayed iput (2019-01-18 17:27:23 +0100) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.0-rc4-tag for you to fetch changes up to 532b618bdf237250d6d4566536d4b6ce3d0a31fe: btrfs: On error always free subvol_name in btrfs_mount (2019-01-30 18:16:47 +0100) Al Viro (1): btrfs: fix potential oops in device_list_add David Sterba (1): btrfs: clean up pending block groups when transaction commit aborts Eric W. Biederman (1): btrfs: On error always free subvol_name in btrfs_mount Filipe Manana (1): Btrfs: fix deadlock when allocating tree block during leaf/node split Josef Bacik (1): btrfs: don't end the transaction for delayed refs in throttle fs/btrfs/ctree.c | 78 -- fs/btrfs/super.c | 3 ++ fs/btrfs/transaction.c | 24 ++-- fs/btrfs/volumes.c | 4 +-- 4 files changed, 71 insertions(+), 38 deletions(-)
Re: [GIT PULL] Btrfs fixes for 5.0-rc3
The pull request you sent on Sun, 20 Jan 2019 16:51:29 +0100: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.0-rc2-tag has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/1be969f4682b0aa1995e46fba51502de55f15ce8 Thank you! -- Deet-doot-dot, I am a bot. https://korg.wiki.kernel.org/userdoc/prtracker
[GIT PULL] Btrfs fixes for 5.0-rc3
Hi, please pull the following branch to obtain a handful of fixes (some of them in testing for a long time, were briefly mentioned in the 1st pull): - fix some test failures regarding cleanup after transaction abort - revert of a patch that could cause a deadlock - delayed iput fixes, that can help in ENOSPC situation when there's low space and lot data to write Thanks. The following changes since commit 1b3922a8bc74231f9a767d1be6d9a061a4d4eeab: btrfs: Use real device structure to verify dev extent (2019-01-10 17:13:00 +0100) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.0-rc2-tag for you to fetch changes up to fd340d0f68cc87badfc9efcb226f23a5428826a0: btrfs: wakeup cleaner thread when adding delayed iput (2019-01-18 17:27:23 +0100) David Sterba (1): Revert "btrfs: balance dirty metadata pages in btrfs_finish_ordered_io" Josef Bacik (4): btrfs: handle delayed ref head accounting cleanup in abort btrfs: wait on ordered extents on abort cleanup btrfs: run delayed iputs before committing btrfs: wakeup cleaner thread when adding delayed iput fs/btrfs/ctree.h | 7 +++ fs/btrfs/disk-io.c | 12 fs/btrfs/extent-tree.c | 21 ++--- fs/btrfs/inode.c | 5 ++--- 4 files changed, 35 insertions(+), 10 deletions(-)
Re: [GIT PULL] Btrfs fixes for 5.0-rc2
The pull request you sent on Sun, 13 Jan 2019 17:39:38 +0100: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.0-rc1-tag has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/6b529fb0a3eabf9c4cc3e94c11477250379ce6d8 Thank you! -- Deet-doot-dot, I am a bot. https://korg.wiki.kernel.org/userdoc/prtracker
[GIT PULL] Btrfs fixes for 5.0-rc2
Hi, please pull the following branch to get: - 2 regression fixes in clone/dedupe ioctls, the generic check callback needs to lock extents properly and wait for io to avoid problems with writeback and relocation - fix deadlock when using free space tree due to block group creation - a recently added check refuses a valid fileystem with seeding device, make that work again with a quickfix, proper solution needs more intrusive changes Thanks. The following changes since commit 52042d8e82ff50d40e76a275ac0b97aa663328b0: btrfs: Fix typos in comments and strings (2018-12-17 14:51:50 +0100) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.0-rc1-tag for you to fetch changes up to 1b3922a8bc74231f9a767d1be6d9a061a4d4eeab: btrfs: Use real device structure to verify dev extent (2019-01-10 17:13:00 +0100) Filipe Manana (3): Btrfs: fix race between cloning range ending at eof and writeback Btrfs: fix race between reflink/dedupe and relocation Btrfs: fix deadlock when using free space tree due to block group creation Qu Wenruo (1): btrfs: Use real device structure to verify dev extent fs/btrfs/ctree.c | 16 +--- fs/btrfs/ioctl.c | 49 +++-- fs/btrfs/volumes.c | 12 3 files changed, 64 insertions(+), 13 deletions(-)
Re: [GIT PULL] Btrfs updates for 4.21
The pull request you sent on Wed, 19 Dec 2018 16:11:04 +0100: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-4.21-tag has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/32ee34eddad13cd44ad0cb3e659fe6fd49143b62 Thank you! -- Deet-doot-dot, I am a bot. https://korg.wiki.kernel.org/userdoc/prtracker
[GIT PULL] Btrfs updates for 4.21
Hi, I've planned to merge a few more patches to the 1st pull branch that belong to a core change mentioned below as 'delayed refs reserve'. There are review comments that I think should be addressed, so the patches are postponed. Technically they're fixes and I presume it's ok to take them in the -rc. I didn't want to touch the pull request branch a few days before sending it, though the patches have been in linux-next for some time. The bugs fixed are not critical for testing so this should not block anybody. No merge conflicts, please pull. Thanks. -- New features: * swapfile support - after a long time it's here, with some limitations where COW design does not work well with the swap implementation (nodatacow file, no compression, cannot be snapshotted, not possible on multiple devices, ...), as this is the most restricted but working setup, we'll try to improve that in the future * metadata uuid - an optional incompat feature to assign a new filesystem UUID without overwriting all metadata blocks, stored only in superblock * more balance messages are printed to system log, initial is in the format of the command line that would be used to start it Fixes: * tag pages of a snapshot to better separate pages that are involved in the snapshot (and need to get synced) from newly dirtied pages that could slow down or even livelock the snapshot operation * improved check of filesystem id associated with a device during scan to detect duplicate devices that could be mixed up during mount * fix device replace state transitions, eg. when it ends up interrupted and reboot tries to restart balance too, or when start/cancel ioctls race * fix a crash due to a race when quotas are enabled during snapshot creation * GFP_NOFS/memalloc_nofs_* fixes due to GFP_KERNEL allocations in transaction context * fix fsync of files with multiple hard links in new directories * fix race of send with transaction commits that create snapshots Core changes: * cleanups * further removals of now-dead fsync code * core function for finding free extent has been split and provides a base for further cleanups to make the logic more understandable * removed lot of indirect callbacks for data and metadata inodes * simplified refcounting and locking for cloned extent buffers * removed redundant function arguments * defines converted to enums where appropriate * separate reserve for delayed refs from global reserve, update logic to do less trickery and ad-hoc heuristics, move out some related expensive operations from transaction commit or file truncate * dev-replace switched from custom locking scheme to semaphore * remove first phase of balance that tried to make some space for the relocation by calling shrink and grow, this did not work as expected and only introduced more error states due to potential resize failures, slightly improves the runtime as the chunks on all devices are not needlessly enumerated * clone and deduplication now use generic helper that adds a few more checks that were missing from the original btrfs implementation of the ioctls The following changes since commit 7566ec393f4161572ba6f11ad5171fd5d59b0fbd: Linux 4.20-rc7 (2018-12-16 15:46:55 -0800) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-4.21-tag for you to fetch changes up to 52042d8e82ff50d40e76a275ac0b97aa663328b0: btrfs: Fix typos in comments and strings (2018-12-17 14:51:50 +0100) Anand Jain (14): btrfs: remove redundant replace_state init btrfs: harden agaist duplicate fsid on scanned devices btrfs: mark btrfs_dev_replace_start as static btrfs: dev-replace: go back to suspended state if target device is missing btrfs: dev-replace: go back to suspend state if another EXCL_OP is running btrfs: fix use-after-free due to race between replace start and cancel btrfs: dev-replace: set result code of cancel by status of scrub btrfs: dev-replace: replace's scrub must not be running in suspended state btrfs: dev-replace: add explicit check for replace result "no error" btrfs: silence warning if replace is canceled btrfs: don't report user-requested cancel as an error btrfs: add helper to describe block group flags btrfs: balance: print args during start and resume btrfs: balance: print to system log when balance ends or is paused Andrea Gelmini (1): btrfs: Fix typos in comments and strings David Sterba (18): btrfs: merge btrfs_submit_bio_done to its caller btrfs: replace async_cow::root with fs_info btrfs: remove redundant csum buffer in btrfs_io_bio btrfs: replace btrfs_io_bio::end_io with a simple helper btrfs: switch BTRFS_FS_STATE_* to enums btrfs: switch BTRFS_BLOCK
Re: [GIT PULL] Btrfs fix for 4.20-rc5
The pull request you sent on Wed, 5 Dec 2018 14:34:01 +0100: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-4.20-rc5-tag has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/d0897090458211f9c6b2d7f5af87f4d3b0403f69 Thank you! -- Deet-doot-dot, I am a bot. https://korg.wiki.kernel.org/userdoc/prtracker
[GIT PULL] Btrfs fix for 4.20-rc5
Hi, a patch in 4.19 introduced a sanity check that was too strict and a filesystem cannot be mounted. This happens for filesystems with more than 10 devices and has been reported a few users so we need the fix to propagate to stable. Please pull, thanks. The following changes since commit 42a657f57628402c73237547f0134e083e2f6764: btrfs: relocation: set trans to be NULL after ending transaction (2018-11-23 13:47:46 +0100) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-4.20-rc5-tag for you to fetch changes up to 10950929e994c5ecee149ff0873388d3c98f12b5: btrfs: tree-checker: Don't check max block group size as current max chunk size limit is unreliable (2018-12-04 15:05:30 +0100) Qu Wenruo (1): btrfs: tree-checker: Don't check max block group size as current max chunk size limit is unreliable fs/btrfs/tree-checker.c | 8 +++- 1 file changed, 3 insertions(+), 5 deletions(-)
Re: [GIT PULL] Btrfs updates for 4.20-rc4
The pull request you sent on Wed, 28 Nov 2018 13:28:05 +0100: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-4.20-rc4-tag has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/121b018f8c74b4e0ba81b4b8ee73a82db3f24b7b Thank you! -- Deet-doot-dot, I am a bot. https://korg.wiki.kernel.org/userdoc/prtracker
[GIT PULL] Btrfs updates for 4.20-rc4
Hi, please pull the following fixes. Some of them are being hit during testing so we'd like to get them merged, otherwise there are usual stability fixes for stable trees. Thanks. The following changes since commit d6fd0ae25c6495674dc5a41a8d16bc8e0073276d: Btrfs: fix missing delayed iputs on unmount (2018-11-07 20:17:45 +0100) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-4.20-rc4-tag for you to fetch changes up to 42a657f57628402c73237547f0134e083e2f6764: btrfs: relocation: set trans to be NULL after ending transaction (2018-11-23 13:47:46 +0100) Filipe Manana (3): Btrfs: fix rare chances for data loss when doing a fast fsync Btrfs: ensure path name is null terminated at btrfs_control_ioctl Btrfs: fix race between enabling quotas and subvolume creation Nikolay Borisov (1): btrfs: Always try all copies when reading extent buffers Pan Bian (1): btrfs: relocation: set trans to be NULL after ending transaction Robbie Ko (1): Btrfs: send, fix infinite loop due to directory rename dependencies fs/btrfs/disk-io.c| 11 +-- fs/btrfs/file.c | 24 fs/btrfs/qgroup.c | 3 ++- fs/btrfs/relocation.c | 1 + fs/btrfs/send.c | 11 --- fs/btrfs/super.c | 1 + 6 files changed, 37 insertions(+), 14 deletions(-)
Re: [GIT PULL] Btrfs fixes for 4.20-rc1
The pull request you sent on Sun, 11 Nov 2018 13:10:56 +0100: > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-4.20-rc1-tag has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/63a42e1a5cb3d01eef2f370c11d8733a32f12f86 Thank you! -- Deet-doot-dot, I am a bot. https://korg.wiki.kernel.org/userdoc/prtracker
[GIT PULL] Btrfs fixes for 4.20-rc1
Hi, this update brings several fixes to recent release (4.19, fixes tagged for stable) and other fixes. No merge conflicts. Please pull, thanks. The following changes since commit 9084cb6a24bf5838a665af92ded1af8363f9e563: Btrfs: fix use-after-free when dumping free space (2018-10-22 20:31:22 +0200) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-4.20-rc1-tag for you to fetch changes up to d6fd0ae25c6495674dc5a41a8d16bc8e0073276d: Btrfs: fix missing delayed iputs on unmount (2018-11-07 20:17:45 +0100) Arnd Bergmann (1): btrfs: avoid link error with CONFIG_NO_AUTO_INLINE Filipe Manana (4): Btrfs: fix missing data checksums after a ranged fsync (msync) Btrfs: fix deadlock on tree root leaf when finding free extent Btrfs: fix infinite loop on inode eviction after deduplication of eof block Btrfs: fix data corruption due to cloning of eof block Lu Fengqi (1): btrfs: fix pinned underflow after transaction aborted Omar Sandoval (1): Btrfs: fix missing delayed iputs on unmount Robbie Ko (1): Btrfs: fix cur_offset in the error case for nocow Shaokun Zhang (1): btrfs: tree-checker: Fix misleading group system information fs/btrfs/ctree.h| 3 +++ fs/btrfs/disk-io.c | 63 +++-- fs/btrfs/free-space-cache.c | 22 +++- fs/btrfs/inode.c| 37 -- fs/btrfs/ioctl.c| 14 -- fs/btrfs/super.c| 6 ++--- fs/btrfs/tree-checker.c | 2 +- fs/btrfs/tree-log.c | 17 8 files changed, 107 insertions(+), 57 deletions(-)
Re: [GIT PULL] Btrfs updates for 4.20, part 2
On Tue, Oct 30, 2018 at 6:24 AM David Sterba wrote: > > this part contains a few minor updates and fixes that were under testing > or arrived shortly after the merge window freeze, mostly stable material. Pulled, Linus
[GIT PULL] Btrfs updates for 4.20, part 2
Hi, this part contains a few minor updates and fixes that were under testing or arrived shortly after the merge window freeze, mostly stable material. Please pull, thanks. The following changes since commit d9352794dad9f28535439d85a815978878c141ab: btrfs: switch return_bigger to bool in find_ref_head (2018-10-15 17:23:41 +0200) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-4.20-part2-tag for you to fetch changes up to 9084cb6a24bf5838a665af92ded1af8363f9e563: Btrfs: fix use-after-free when dumping free space (2018-10-22 20:31:22 +0200) Filipe Manana (5): Btrfs: fix null pointer dereference on compressed write path error Btrfs: fix assertion on fsync of regular file when using no-holes feature Btrfs: fix deadlock when writing out free space caches Btrfs: fix use-after-free during inode eviction Btrfs: fix use-after-free when dumping free space Josef Bacik (8): MAINTAINERS: update my email address for btrfs btrfs: reset max_extent_size properly btrfs: set max_extent_size properly btrfs: don't use ctl->free_space for max_extent_size btrfs: only free reserved extent if we didn't insert it btrfs: fix insert_reserved error handling btrfs: don't run delayed_iputs in commit btrfs: move the dio_sem higher up the callchain Lu Fengqi (1): btrfs: delayed-ref: extract find_first_ref_head from find_ref_head MAINTAINERS | 2 +- fs/btrfs/ctree.c| 17 +++ fs/btrfs/delayed-ref.c | 50 - fs/btrfs/extent-tree.c | 37 +++-- fs/btrfs/file.c | 12 +++ fs/btrfs/free-space-cache.c | 32 - fs/btrfs/inode.c| 15 -- fs/btrfs/transaction.c | 9 fs/btrfs/tree-log.c | 5 ++--- 9 files changed, 111 insertions(+), 68 deletions(-)
Re: [GIT PULL] Btrfs updates for 4.20, part 1
On Mon, Oct 22, 2018 at 6:22 PM David Sterba wrote: > > this is the first batch with fixes and some nice performance improvements. Pulled (at 30,000 ft, somewhere between Ireland and Iceland), Linus
Re: [GIT PULL] Btrfs updates for 4.20, part 1
On Mon, Oct 22, 2018 at 05:23:36PM -0700, Liu Bo wrote: > > Performance improvements: > > > > * blocking mode of path is gone, means that only the spinning mode is used; > > I'd like to do a few corrections here, the transition from the > spinning mode to blocking mode is removed, we still need blocking mode > of path for sleeping context. Ok, thanks. So for the purpose of merge changelog, the updated text: * transition between blocking and spinning modes of path is gone, which originally resulted to more unnecessary wakeups and updates to the path locks, the effects are measurable and improve latency and scalability
Re: [GIT PULL] Btrfs updates for 4.20, part 1
On Mon, Oct 22, 2018 at 10:24 AM David Sterba wrote: > > Hi, > > this is the first batch with fixes and some nice performance improvements. > > Preliminary results show eg. more files/sec in fsmark, better perf on > multi-threaded workloads (filebench, dbench), fewer context switches and > overall better memory allocation characteristics (multiple benchmarks). > > Apart from general performance, there's an improvement for qgroups + > balance workload that's been troubling our users. > > Note for stable: there are 20+ patches tagged for stable, out of 90. Not > all of them apply cleanly on all stable versions but the conflicts are > mostly due to simple cleanups and resolving should be obvious. The fixes > are otherwise independent. > > No merge conflicts expected. Please pull, thanks. > > > Performance improvements: > > * blocking mode of path is gone, means that only the spinning mode is used; I'd like to do a few corrections here, the transition from the spinning mode to blocking mode is removed, we still need blocking mode of path for sleeping context. thanks, liubo > the blocking resulted in more unnecessary wakeups and updates to the path > locks, the effects are measurable and improve latency and scaleability > > * qgroups: first batch of changes that should speedup balancing with qgroups > on, skip quota accounting on unchanged subtrees, overall gain is about 30+% > in runtime > > * use rb-tree with cached first node for several structures, small improvement > to avoid pointer chasing > > Fixes: > > * trim > * fix: some blockgroups could have been missed if their logical address was > past the total filesystem size (ie. after a lot of balancing) > * better error reporting, after processing blockgroups and whole device > * fix: continue trimming block groups after an error is encountered > * check for trim support of the device earlier and avoid some unnecessary > work > * less interaction with transaction commit that improves latency on slower > storage (eg. image files over NFS) > > * fsync > * fix warning when replaying log after fsync of a O_TMPFILE > * fix wrong dentries after fsync of file that got its parent replaced > > * qgroups: fix rescan that might misc some dirty groups > > * don't clean dirty pages during buffered writes, this could lead to lost > updates in some corner cases > > * some block groups could have been delayed in creation, if the allocation > triggered another one > > * error handling improvements > > Cleanups: > > * removed unused struct members and variables > * function return type cleanups > * delayed refs code refactoring > > * protect against deadlock that could be caused by crafted image that tries to > allocate from a tree that's locked already > > > The following changes since commit 35a7f35ad1b150ddf59a41dcac7b2fa32982be0e: > > Linux 4.19-rc8 (2018-10-15 07:20:24 +0200) > > are available in the Git repository at: > > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git > for-4.20-part1-tag > > for you to fetch changes up to d9352794dad9f28535439d85a815978878c141ab: > > btrfs: switch return_bigger to bool in find_ref_head (2018-10-15 17:23:41 > +0200) > > > Anand Jain (2): > btrfs: add assertions where number of devices could go below 0 > btrfs: add helper to obtain number of devices with ongoing dev-replace > > Chris Mason (1): > Btrfs: don't clean dirty pages during buffered writes > > Colin Ian King (2): > btrfs: remove unused pointer inode in relink_file_extents > btrfs: remove unused pointer 'tree' in btrfs_submit_compressed_read > > David Sterba (12): > btrfs: tests: add separate stub for find_lock_delalloc_range > btrfs: tests: move testing members of struct btrfs_root to the end > btrfs: tests: group declarations of self-test helpers > btrfs: tests: polish ifdefs around testing helper > btrfs: use common helper instead of open coding a bit test > btrfs: remove btrfs_dev_replace::read_locks > btrfs: open code btrfs_dev_replace_clear_lock_blocking > btrfs: open code btrfs_dev_replace_stats_inc > btrfs: open code btrfs_after_dev_replace_commit > btrfs: dev-replace: avoid useless lock on error handling path > btrfs: dev-replace: move replace members out of fs_info > btrfs: dev-replace: remove pointless assert in write unlock > > Filipe Manana (2): > Btrfs: fix warning when replaying log after fsync of a tmpfile > Btrfs: fix wrong dentries after fsync of file that got its parent > replaced > > Jeff Mahoney (5): > btrfs: fix error handling in free_log_tree > btrfs: fix error handling in btrfs_dev_replace_start > btrfs: iterate all devices during trim, instead of > fs_devices::alloc_list > btrfs: don't attempt to trim devices that don
[GIT PULL] Btrfs updates for 4.20, part 1
Hi, this is the first batch with fixes and some nice performance improvements. Preliminary results show eg. more files/sec in fsmark, better perf on multi-threaded workloads (filebench, dbench), fewer context switches and overall better memory allocation characteristics (multiple benchmarks). Apart from general performance, there's an improvement for qgroups + balance workload that's been troubling our users. Note for stable: there are 20+ patches tagged for stable, out of 90. Not all of them apply cleanly on all stable versions but the conflicts are mostly due to simple cleanups and resolving should be obvious. The fixes are otherwise independent. No merge conflicts expected. Please pull, thanks. Performance improvements: * blocking mode of path is gone, means that only the spinning mode is used; the blocking resulted in more unnecessary wakeups and updates to the path locks, the effects are measurable and improve latency and scaleability * qgroups: first batch of changes that should speedup balancing with qgroups on, skip quota accounting on unchanged subtrees, overall gain is about 30+% in runtime * use rb-tree with cached first node for several structures, small improvement to avoid pointer chasing Fixes: * trim * fix: some blockgroups could have been missed if their logical address was past the total filesystem size (ie. after a lot of balancing) * better error reporting, after processing blockgroups and whole device * fix: continue trimming block groups after an error is encountered * check for trim support of the device earlier and avoid some unnecessary work * less interaction with transaction commit that improves latency on slower storage (eg. image files over NFS) * fsync * fix warning when replaying log after fsync of a O_TMPFILE * fix wrong dentries after fsync of file that got its parent replaced * qgroups: fix rescan that might misc some dirty groups * don't clean dirty pages during buffered writes, this could lead to lost updates in some corner cases * some block groups could have been delayed in creation, if the allocation triggered another one * error handling improvements Cleanups: * removed unused struct members and variables * function return type cleanups * delayed refs code refactoring * protect against deadlock that could be caused by crafted image that tries to allocate from a tree that's locked already The following changes since commit 35a7f35ad1b150ddf59a41dcac7b2fa32982be0e: Linux 4.19-rc8 (2018-10-15 07:20:24 +0200) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-4.20-part1-tag for you to fetch changes up to d9352794dad9f28535439d85a815978878c141ab: btrfs: switch return_bigger to bool in find_ref_head (2018-10-15 17:23:41 +0200) Anand Jain (2): btrfs: add assertions where number of devices could go below 0 btrfs: add helper to obtain number of devices with ongoing dev-replace Chris Mason (1): Btrfs: don't clean dirty pages during buffered writes Colin Ian King (2): btrfs: remove unused pointer inode in relink_file_extents btrfs: remove unused pointer 'tree' in btrfs_submit_compressed_read David Sterba (12): btrfs: tests: add separate stub for find_lock_delalloc_range btrfs: tests: move testing members of struct btrfs_root to the end btrfs: tests: group declarations of self-test helpers btrfs: tests: polish ifdefs around testing helper btrfs: use common helper instead of open coding a bit test btrfs: remove btrfs_dev_replace::read_locks btrfs: open code btrfs_dev_replace_clear_lock_blocking btrfs: open code btrfs_dev_replace_stats_inc btrfs: open code btrfs_after_dev_replace_commit btrfs: dev-replace: avoid useless lock on error handling path btrfs: dev-replace: move replace members out of fs_info btrfs: dev-replace: remove pointless assert in write unlock Filipe Manana (2): Btrfs: fix warning when replaying log after fsync of a tmpfile Btrfs: fix wrong dentries after fsync of file that got its parent replaced Jeff Mahoney (5): btrfs: fix error handling in free_log_tree btrfs: fix error handling in btrfs_dev_replace_start btrfs: iterate all devices during trim, instead of fs_devices::alloc_list btrfs: don't attempt to trim devices that don't support it btrfs: keep trim from interfering with transaction commits Josef Bacik (7): btrfs: wait on caching when putting the bg cache btrfs: release metadata before running delayed refs btrfs: protect space cache inode alloc with GFP_NOFS btrfs: reset max_extent_size on clear in a bitmap btrfs: make sure we create all new block groups btrfs: assert on non-empty delayed iputs btrfs: drop mi
Re: [GIT PULL] Btrfs updates for 4.18
On 06/29/2018 02:26 AM, David Sterba wrote: On Thu, Jun 28, 2018 at 07:22:59PM +0800, Anand Jain wrote: The circular locking dependency warning occurs at FSSTRESS_PROG. And in particular at doproc() in xfstests/ltp/fsstress.c, randomly at any of the command at opdesc_tops[] = { ..} which involves calling mmap file operation and if there is something to commit. The commit transaction does need device_list_mutex which is also being used for the btrfs_open_devices() in the commit 542c5908abfe84f7. But btrfs_open_devices() is only called at mount, and mmap() can establish only be established after the mount has completed. With this give its unclear to me why the circular locking dependency check is warning about this. I feel until we have clarity about this and also solve other problem related to the streamlining of uuid_mutex, I suggest we revert 542c5908abfe84f7. Sorry for the inconvenience. Ok, the revert is one option. I'm cosidering adding both the locks, like is in https://patchwork.kernel.org/patch/10478443/ . This would have no effect, as btrfs_open_devices is called only from mount path and the list_sort is done only for the first time when there are not other users of the list that would not also be under the uuid_mutex. This passed the syzbot and other tests, so this does not break things and goes towards pushing the device_list_mutex as the real protection mechanism for the fs_devices members. Let me know what you think, the revert should be the last option if we don't have anything better. With this patch [1] as well I find the circular lock warning[2]. [1] https://patchwork.kernel.org/patch/10478443/ Test case: mkfs.btrfs -fq /dev/sdc && mount /dev/sdc /btrfs && /xfstests/ltp/fsstress -d /btrfs -w -p 1 -n 2000 However when the device_list_mutex is removed, the warning goes away. Let me investigate bit more about circular locking dependency. About using uuid_mutex in btrfs_open_devices(). I am planning to be more conceivable about the using the bit map for the volume flags and which shall also include the EXCL OPS in progress flag for the fs_devices. Which means we hold uuid_mutex and set/reset EXCL OPS flag for the fs_devices. And so the other fsids like fsid2 can still hold the uuid_mutex while fsid1 is still mounting/opening (which may sleep). I hope you would agree to use bit map for volume, we also need this bit map to manage the volume status. Or if there is a better solution I am fine. However uuid_mutex isn't as it blocks fsids2 to mount. Thanks, Anand [2] --- kernel: kernel: == kernel: WARNING: possible circular locking dependency detected kernel: 4.18.0-rc1+ #63 Not tainted kernel: -- kernel: fsstress/3062 is trying to acquire lock: kernel: 7d28aeca (&fs_info->reloc_mutex){+.+.}, at: btrfs_record_root_in_trans+0x43/0x70 [btrfs] kernel: but task is already holding lock: kernel: 2fc78565 (&mm->mmap_sem){}, at: vm_mmap_pgoff+0x9f/0x110 kernel: which lock already depends on the new lock. kernel: the existing dependency chain (in reverse order) is: kernel: -> #5 (&mm->mmap_sem){}: kernel:_copy_from_user+0x1e/0x90 kernel:scsi_cmd_ioctl+0x2ba/0x480 kernel:cdrom_ioctl+0x3b/0xb2e kernel:sr_block_ioctl+0x7e/0xc0 kernel:blkdev_ioctl+0x4ea/0x980 kernel:block_ioctl+0x39/0x40 kernel:do_vfs_ioctl+0xa2/0x6c0 kernel:ksys_ioctl+0x70/0x80 kernel:__x64_sys_ioctl+0x16/0x20 kernel:do_syscall_64+0x4a/0x180 kernel:entry_SYSCALL_64_after_hwframe+0x49/0xbe kernel: -> #4 (sr_mutex){+.+.}: kernel:sr_block_open+0x24/0xd0 kernel:__blkdev_get+0xcb/0x480 kernel:blkdev_get+0x144/0x3a0 kernel:do_dentry_open+0x1b1/0x2d0 kernel:path_openat+0x57b/0xcc0 kernel:do_filp_open+0x9b/0x110 kernel:do_sys_open+0x1bd/0x250 kernel:do_syscall_64+0x4a/0x180 kernel:entry_SYSCALL_64_after_hwframe+0x49/0xbe kernel: -> #3 (&bdev->bd_mutex){+.+.}: kernel:__blkdev_get+0x5d/0x480 kernel:blkdev_get+0x243/0x3a0 kernel:blkdev_get_by_path+0x4a/0x80 kernel:btrfs_get_bdev_and_sb+0x1b/0xa0 [btrfs] kernel:open_fs_devices+0x85/0x270 [btrfs] kernel:btrfs_open_devices+0x6b/0x70 [btrfs] kernel:btrfs_mount_root+0x41a/0x7e0 [btrfs] kernel:mount_fs+0x30/0x150 kernel:vfs_kern_mount.part.31+0x54/0x140 kernel:btrfs_mount+0x175/0x920 [btrfs] kernel:mount_fs+0x30/0x150 kernel:vfs_kern_mount.part.31+0x
Re: [GIT PULL] Btrfs updates for 4.18
On Thu, Jun 28, 2018 at 07:22:59PM +0800, Anand Jain wrote: > The circular locking dependency warning occurs at FSSTRESS_PROG. > And in particular at doproc() in xfstests/ltp/fsstress.c, randomly > at any of the command at > opdesc_tops[] = { ..} > which involves calling mmap file operation and if there is something > to commit. > > The commit transaction does need device_list_mutex which is also being > used for the btrfs_open_devices() in the commit 542c5908abfe84f7. > > But btrfs_open_devices() is only called at mount, and mmap() can > establish only be established after the mount has completed. With > this give its unclear to me why the circular locking dependency check > is warning about this. > > I feel until we have clarity about this and also solve other problem > related to the streamlining of uuid_mutex, I suggest we revert > 542c5908abfe84f7. Sorry for the inconvenience. Ok, the revert is one option. I'm cosidering adding both the locks, like is in https://patchwork.kernel.org/patch/10478443/ . This would have no effect, as btrfs_open_devices is called only from mount path and the list_sort is done only for the first time when there are not other users of the list that would not also be under the uuid_mutex. This passed the syzbot and other tests, so this does not break things and goes towards pushing the device_list_mutex as the real protection mechanism for the fs_devices members. Let me know what you think, the revert should be the last option if we don't have anything better. -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [GIT PULL] Btrfs updates for 4.18
On 06/12/2018 12:16 AM, David Sterba wrote: On Mon, Jun 11, 2018 at 10:50:54AM +0100, Filipe Manana wrote: btrfs: replace uuid_mutex by device_list_mutex in btrfs_open_devices * * the mutex can be very coarse and can cover long-running operations * * protects: updates to fs_devices counters like missing devices, rw devices, * seeding, structure cloning, openning/closing devices at mount/umount time generates some confusion since btrfs_open_devices(), after that commit, no longer takes the uuid_mutex and it updates some fs_devices counters (opened, open_devices, etc). As uuid_mutex is a global fs_uuids lock for the per fsid operations doesn't make any sense. This problem is reproducible only for-4.18, misc-next if fine. I am looking deeper. What about the unprotected updates (increments) to fs_devices->opened and fs_devices->open_devices? Other functions are accessing/updating them while holding the uuid mutex. The goal is to reduce usage of uuid_mutex only to protect search or update of the fs_uuids list, everything else should be protected by the device_list_mutex. The commit 542c5908abfe84f7 (use device_list_mutex in btrfs_open_devices) implements that but then the access to the ->opened member is not protected consistently. There are patches that convert the use to device_list_mutex but haven't been merged due to refinements or pending review. At this point I think we should revert the one commit 542c5908abfe84f7 as it introduces the locking problems and revisit the whole fs_devices locking scheme again in the dex dev cycle. That will be post rc1 as there might be more to revert. I tried to narrow this, it appears some of the things that circular locking dependency check report doesn't make sense. Here below is what I find.. as of now. The test case btrfs/004 can be simplified to.. which also reproduces the problem. -8<- $ cat 165 #! /bin/bash # FS QA Test No. btrfs/165 # seq=`basename $0` seqres=$RESULT_DIR/$seq echo "QA output created by $seq" here=`pwd` tmp=/tmp/$$ status=1 noise_pid=0 _cleanup() { wait rm -f $tmp.* } trap "_cleanup; exit \$status" 0 1 2 3 15 # get standard environment, filters and checks . ./common/rc . ./common/filter # real QA test starts here _supported_fs btrfs _supported_os Linux _require_scratch rm -f $seqres.full run_check _scratch_mkfs_sized $((2000 * 1024 * 1024)) run_check _scratch_mount run_check $FSSTRESS_PROG -d $SCRATCH_MNT -w -p 1 -n 2000 $FSSTRESS_AVOID run_check _scratch_unmount echo "done" status=0 exit -8<- The circular locking dependency warning occurs at FSSTRESS_PROG. And in particular at doproc() in xfstests/ltp/fsstress.c, randomly at any of the command at opdesc_tops[] = { ..} which involves calling mmap file operation and if there is something to commit. The commit transaction does need device_list_mutex which is also being used for the btrfs_open_devices() in the commit 542c5908abfe84f7. But btrfs_open_devices() is only called at mount, and mmap() can establish only be established after the mount has completed. With this give its unclear to me why the circular locking dependency check is warning about this. I feel until we have clarity about this and also solve other problem related to the streamlining of uuid_mutex, I suggest we revert 542c5908abfe84f7. Sorry for the inconvenience. Thanks, Anand -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [GIT PULL] Btrfs updates for 4.18
On Mon, Jun 11, 2018 at 10:50:54AM +0100, Filipe Manana wrote: > >>>btrfs: replace uuid_mutex by device_list_mutex in > >>> btrfs_open_devices > >> * > >> * the mutex can be very coarse and can cover long-running operations > >> * > >> * protects: updates to fs_devices counters like missing devices, rw > >> devices, > >> * seeding, structure cloning, openning/closing devices at mount/umount > >> time > >> > >> generates some confusion since btrfs_open_devices(), after that > >> commit, no longer takes the uuid_mutex and it > >> updates some fs_devices counters (opened, open_devices, etc). > > > > As uuid_mutex is a global fs_uuids lock for the per fsid operations > > doesn't make any sense. > > > > This problem is reproducible only for-4.18, misc-next if fine. > > I am looking deeper. > > What about the unprotected updates (increments) to fs_devices->opened > and fs_devices->open_devices? > Other functions are accessing/updating them while holding the uuid mutex. The goal is to reduce usage of uuid_mutex only to protect search or update of the fs_uuids list, everything else should be protected by the device_list_mutex. The commit 542c5908abfe84f7 (use device_list_mutex in btrfs_open_devices) implements that but then the access to the ->opened member is not protected consistently. There are patches that convert the use to device_list_mutex but haven't been merged due to refinements or pending review. At this point I think we should revert the one commit 542c5908abfe84f7 as it introduces the locking problems and revisit the whole fs_devices locking scheme again in the dex dev cycle. That will be post rc1 as there might be more to revert. -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [GIT PULL] Btrfs updates for 4.18
On Mon, Jun 11, 2018 at 9:14 AM, Anand Jain wrote: > > > On 06/10/2018 12:21 AM, Filipe Manana wrote: >> >> On Mon, Jun 4, 2018 at 4:43 PM, David Sterba wrote: >>> >>> Hi, >>> >>> there are some new features and a usual load of cleanups, more details >>> below. >>> >>> Specifically, there's a set of new non-privileged ioctls to allow >>> subvolume listing. It works but still needs a security review as it's a >>> new interface and we might need to do some tweaks to the data >>> structures. The fixes could be considred regressions but may touch the >>> interfaces too. >>> >>> Currently there are no merge conflicts but linux-next has reported a few >>> in the past, originating from other *FS trees. >>> >>> Please pull, thanks. >>> >>> --- >>> >>> User visible features: >>> >>> - added support for the ioctl FS_IOC_FSGETXATTR, per-inode flags, >>> successor >>>of GET/SETFLAGS; now supports only existing flags: append, immutable, >>>noatime, nodump, sync >>> >>> - 3 new unprivileged ioctls to allow users to enumerate subvolumes >>> >>> - dedupe syscall implementation does not restrict the range to 16MiB, >>> though it >>>still splits the whole range to 16MiB chunks >>> >>> - on user demand, rmdir() is able to delete an empty subvolume, export >>> the >>>capability in sysfs >>> >>> - fix inode number types in tracepoints, other cleanups >>> >>> - send: improved speed when dealing with a large removed directory, >>>measurements show decrease from 2000 minutes to 2 minutes on a >>> directory with >>>2 million entries >>> >>> - pre-commit check of superblock to detect a mysterious in-memory >>> corruption >>> >>> - log message updates >>> >>> >>> Other changes: >>> >>> - orphan inode cleanup improved, does no keep long-standing reservations >>> that >>>could lead up to early ENOSPC in some cases >>> >>> - slight improvement of handling snapshotted NOCOW files by avoiding some >>>unnecessary tree searches >>> >>> - avoid OOM when dealing with many unmergeable small extents at flush >>> time >>> >>> - speedup conversion of free space tree representations from/to >>> bitmap/tree >>> >>> - code refactoring, deletion, cleanups >>>- delayed refs >>>- delayed iput >>>- redundant argument removals >>>- memory barrier cleanups >>>- remove a redundant mutex supposedly excluding several ioctls to run >>> in >>> parallel >>> >>> - new tracepoints for blockgroup manipulation >>> >>> - more sanity checks of compressed headers >>> >>> >>> The following changes since commit >>> b04e217704b7f879c6b91222b066983a44a7a09f: >>> >>>Linux 4.17-rc7 (2018-05-27 13:01:47 -0700) >>> >>> are available in the Git repository at: >>> >>>git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git >>> for-4.18-tag >>> >>> for you to fetch changes up to 23d0b79dfaed2305b500b0215b0421701ada6b1a: >>> >>>btrfs: Add unprivileged version of ino_lookup ioctl (2018-05-31 >>> 11:35:24 +0200) >>> >>> >>> Al Viro (1): >>>btrfs: take the last remnants of ->d_fsdata use out >>> >>> Anand Jain (19): >>>btrfs: add comment about BTRFS_FS_EXCL_OP >>>btrfs: rename struct btrfs_fs_devices::list >>>btrfs: cleanup __btrfs_open_devices() drop head pointer >>>btrfs: rename __btrfs_close_devices to close_fs_devices >>>btrfs: rename __btrfs_open_devices to open_fs_devices >>>btrfs: cleanup find_device() drop list_head pointer >>>btrfs: cleanup btrfs_rm_device() promote fs_devices pointer >>>btrfs: move btrfs_raid_type_names values to btrfs_raid_attr table >>>btrfs: move btrfs_raid_group values to btrfs_raid_attr table >>>btrfs: move btrfs_raid_mindev_errorvalues to btrfs_raid_attr table >>>btrfs: reduce uuid_mutex critical section while scanning devices >>>btrfs: use existing cur_devices, cleanup btrfs_rm_device >>>btrfs: document uuid_mutex uasge in read_chunk_tree >>>btrfs: replace uuid_mutex by device_list_mutex in >>> btrfs_open_devices >> >> >> This change (commit 542c5908abfe84f7b4c1717492ecc92ea0ea328d, "btrfs: >> replace uuid_mutex by device_list_mutex in btrfs_open_devices"), at >> the very least >> introduces a lockdep warning: >> >> [ 865.021049] == >> [ 865.021950] WARNING: possible circular locking dependency detected >> [ 865.022828] 4.17.0-rc7-btrfs-next-59+ #1 Not tainted >> [ 865.023491] -- >> [ 865.024342] fsstress/27897 is trying to acquire lock: >> [ 865.025070] 99260c12 (&fs_info->reloc_mutex){+.+.}, at: >> btrfs_record_root_in_trans+0x43/0x62 [btrfs] >> [ 865.026369] >> [ 865.026369] but task is already holding lock: >> [ 865.027206] 8dc17c22 (&mm->mmap_sem){}, at: >> vm_mmap_pgoff+0x77/0xe8 >> [ 865.0
Re: [GIT PULL] Btrfs updates for 4.18
On 06/10/2018 12:21 AM, Filipe Manana wrote: On Mon, Jun 4, 2018 at 4:43 PM, David Sterba wrote: Hi, there are some new features and a usual load of cleanups, more details below. Specifically, there's a set of new non-privileged ioctls to allow subvolume listing. It works but still needs a security review as it's a new interface and we might need to do some tweaks to the data structures. The fixes could be considred regressions but may touch the interfaces too. Currently there are no merge conflicts but linux-next has reported a few in the past, originating from other *FS trees. Please pull, thanks. --- User visible features: - added support for the ioctl FS_IOC_FSGETXATTR, per-inode flags, successor of GET/SETFLAGS; now supports only existing flags: append, immutable, noatime, nodump, sync - 3 new unprivileged ioctls to allow users to enumerate subvolumes - dedupe syscall implementation does not restrict the range to 16MiB, though it still splits the whole range to 16MiB chunks - on user demand, rmdir() is able to delete an empty subvolume, export the capability in sysfs - fix inode number types in tracepoints, other cleanups - send: improved speed when dealing with a large removed directory, measurements show decrease from 2000 minutes to 2 minutes on a directory with 2 million entries - pre-commit check of superblock to detect a mysterious in-memory corruption - log message updates Other changes: - orphan inode cleanup improved, does no keep long-standing reservations that could lead up to early ENOSPC in some cases - slight improvement of handling snapshotted NOCOW files by avoiding some unnecessary tree searches - avoid OOM when dealing with many unmergeable small extents at flush time - speedup conversion of free space tree representations from/to bitmap/tree - code refactoring, deletion, cleanups - delayed refs - delayed iput - redundant argument removals - memory barrier cleanups - remove a redundant mutex supposedly excluding several ioctls to run in parallel - new tracepoints for blockgroup manipulation - more sanity checks of compressed headers The following changes since commit b04e217704b7f879c6b91222b066983a44a7a09f: Linux 4.17-rc7 (2018-05-27 13:01:47 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-4.18-tag for you to fetch changes up to 23d0b79dfaed2305b500b0215b0421701ada6b1a: btrfs: Add unprivileged version of ino_lookup ioctl (2018-05-31 11:35:24 +0200) Al Viro (1): btrfs: take the last remnants of ->d_fsdata use out Anand Jain (19): btrfs: add comment about BTRFS_FS_EXCL_OP btrfs: rename struct btrfs_fs_devices::list btrfs: cleanup __btrfs_open_devices() drop head pointer btrfs: rename __btrfs_close_devices to close_fs_devices btrfs: rename __btrfs_open_devices to open_fs_devices btrfs: cleanup find_device() drop list_head pointer btrfs: cleanup btrfs_rm_device() promote fs_devices pointer btrfs: move btrfs_raid_type_names values to btrfs_raid_attr table btrfs: move btrfs_raid_group values to btrfs_raid_attr table btrfs: move btrfs_raid_mindev_errorvalues to btrfs_raid_attr table btrfs: reduce uuid_mutex critical section while scanning devices btrfs: use existing cur_devices, cleanup btrfs_rm_device btrfs: document uuid_mutex uasge in read_chunk_tree btrfs: replace uuid_mutex by device_list_mutex in btrfs_open_devices This change (commit 542c5908abfe84f7b4c1717492ecc92ea0ea328d, "btrfs: replace uuid_mutex by device_list_mutex in btrfs_open_devices"), at the very least introduces a lockdep warning: [ 865.021049] == [ 865.021950] WARNING: possible circular locking dependency detected [ 865.022828] 4.17.0-rc7-btrfs-next-59+ #1 Not tainted [ 865.023491] -- [ 865.024342] fsstress/27897 is trying to acquire lock: [ 865.025070] 99260c12 (&fs_info->reloc_mutex){+.+.}, at: btrfs_record_root_in_trans+0x43/0x62 [btrfs] [ 865.026369] [ 865.026369] but task is already holding lock: [ 865.027206] 8dc17c22 (&mm->mmap_sem){}, at: vm_mmap_pgoff+0x77/0xe8 [ 865.028251] [ 865.028251] which lock already depends on the new lock. [ 865.028251] [ 865.029482] [ 865.029482] the existing dependency chain (in reverse order) is: [ 865.030523] [ 865.030523] -> #7 (&mm->mmap_sem){}: [ 865.031241]_copy_to_user+0x1e/0x63 [ 865.031745]filldir+0x9e/0xef [ 865.032285]dir_emit_dots+0x3b/0xbd [ 865.032881]dcache_readdir+0x22/0xbb [ 865.033502]iterate_dir+0xa3/0x13e [ 865.034131]__do_sys_getdents+0xa1/0x106 [ 865.034821]do_syscall_6
Re: [GIT PULL] Btrfs updates for 4.18
On Mon, Jun 4, 2018 at 4:43 PM, David Sterba wrote: > Hi, > > there are some new features and a usual load of cleanups, more details below. > > Specifically, there's a set of new non-privileged ioctls to allow > subvolume listing. It works but still needs a security review as it's a > new interface and we might need to do some tweaks to the data > structures. The fixes could be considred regressions but may touch the > interfaces too. > > Currently there are no merge conflicts but linux-next has reported a few > in the past, originating from other *FS trees. > > Please pull, thanks. > > --- > > User visible features: > > - added support for the ioctl FS_IOC_FSGETXATTR, per-inode flags, successor > of GET/SETFLAGS; now supports only existing flags: append, immutable, > noatime, nodump, sync > > - 3 new unprivileged ioctls to allow users to enumerate subvolumes > > - dedupe syscall implementation does not restrict the range to 16MiB, though > it > still splits the whole range to 16MiB chunks > > - on user demand, rmdir() is able to delete an empty subvolume, export the > capability in sysfs > > - fix inode number types in tracepoints, other cleanups > > - send: improved speed when dealing with a large removed directory, > measurements show decrease from 2000 minutes to 2 minutes on a directory > with > 2 million entries > > - pre-commit check of superblock to detect a mysterious in-memory corruption > > - log message updates > > > Other changes: > > - orphan inode cleanup improved, does no keep long-standing reservations that > could lead up to early ENOSPC in some cases > > - slight improvement of handling snapshotted NOCOW files by avoiding some > unnecessary tree searches > > - avoid OOM when dealing with many unmergeable small extents at flush time > > - speedup conversion of free space tree representations from/to bitmap/tree > > - code refactoring, deletion, cleanups > - delayed refs > - delayed iput > - redundant argument removals > - memory barrier cleanups > - remove a redundant mutex supposedly excluding several ioctls to run in > parallel > > - new tracepoints for blockgroup manipulation > > - more sanity checks of compressed headers > > > The following changes since commit b04e217704b7f879c6b91222b066983a44a7a09f: > > Linux 4.17-rc7 (2018-05-27 13:01:47 -0700) > > are available in the Git repository at: > > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-4.18-tag > > for you to fetch changes up to 23d0b79dfaed2305b500b0215b0421701ada6b1a: > > btrfs: Add unprivileged version of ino_lookup ioctl (2018-05-31 11:35:24 > +0200) > > > Al Viro (1): > btrfs: take the last remnants of ->d_fsdata use out > > Anand Jain (19): > btrfs: add comment about BTRFS_FS_EXCL_OP > btrfs: rename struct btrfs_fs_devices::list > btrfs: cleanup __btrfs_open_devices() drop head pointer > btrfs: rename __btrfs_close_devices to close_fs_devices > btrfs: rename __btrfs_open_devices to open_fs_devices > btrfs: cleanup find_device() drop list_head pointer > btrfs: cleanup btrfs_rm_device() promote fs_devices pointer > btrfs: move btrfs_raid_type_names values to btrfs_raid_attr table > btrfs: move btrfs_raid_group values to btrfs_raid_attr table > btrfs: move btrfs_raid_mindev_errorvalues to btrfs_raid_attr table > btrfs: reduce uuid_mutex critical section while scanning devices > btrfs: use existing cur_devices, cleanup btrfs_rm_device > btrfs: document uuid_mutex uasge in read_chunk_tree > btrfs: replace uuid_mutex by device_list_mutex in btrfs_open_devices This change (commit 542c5908abfe84f7b4c1717492ecc92ea0ea328d, "btrfs: replace uuid_mutex by device_list_mutex in btrfs_open_devices"), at the very least introduces a lockdep warning: [ 865.021049] == [ 865.021950] WARNING: possible circular locking dependency detected [ 865.022828] 4.17.0-rc7-btrfs-next-59+ #1 Not tainted [ 865.023491] -- [ 865.024342] fsstress/27897 is trying to acquire lock: [ 865.025070] 99260c12 (&fs_info->reloc_mutex){+.+.}, at: btrfs_record_root_in_trans+0x43/0x62 [btrfs] [ 865.026369] [ 865.026369] but task is already holding lock: [ 865.027206] 8dc17c22 (&mm->mmap_sem){}, at: vm_mmap_pgoff+0x77/0xe8 [ 865.028251] [ 865.028251] which lock already depends on the new lock. [ 865.028251] [ 865.029482] [ 865.029482] the existing dependency chain (in reverse order) is: [ 865.030523] [ 865.030523] -> #7 (&mm->mmap_sem){}: [ 865.031241]_copy_to_user+0x1e/0x63 [ 865.031745]filldir+0x9e/0xef [ 865.032285]dir_emit_dots+0x3b/0xbd [ 865.032881]dcache_readdir+0x22/0xbb [ 865.033502]iterate_dir+0xa3/0x
[GIT PULL] Btrfs fix for 4.17-rc6
Hi, please consider pulling a fix for btrfs. This time it's really a one-liner and prevents leaking an internal error value 1 out of the ftruncate syscall. This has been observed in practice. The steps to reproduce make a common pattern (open/write/fync/ftruncate) but also need the application to not check only for negative values and happens only for compressed inlined files. The conditions are narrow but as this could break userspace I think it's better to merge it now and not wait for the merge window. Thanks. The following changes since commit 02ee654d3a04563c67bfe658a05384548b9bb105: btrfs: fix crash when trying to resume balance without the resume flag (2018-05-17 14:38:24 +0200) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-4.17-rc6-tag for you to fetch changes up to d50147381aa0c9725d63a677c138c47f55d6d3bc: Btrfs: fix error handling in btrfs_truncate() (2018-05-24 11:56:57 +0200) Omar Sandoval (1): Btrfs: fix error handling in btrfs_truncate() fs/btrfs/inode.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [GIT PULL] Btrfs fixes for 4.17-rc6
On Sun, May 20, 2018 at 8:21 AM David Sterba wrote: > They IMHO qualify for a late rc, though I did not expect that many. Especially with the tree-log.c changes being fairly big, I took a look, and I have to say that I appreciate (a) the warning in the pull request and (b) the extensive log messages explaining the problems these patches fix. I obviously still prefer to see only small and simple one-liners just before I'm making ready to release rc6, but in the absence of oneliners I do appreciate good explanations. Thanks, Linus -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[GIT PULL] Btrfs fixes for 4.17-rc6
Hi, we've accumulated some fixes during the last week, some of them were in the works for a longer time but there are some newer ones too. Most of the fixes have a reproducer and fix user visible problems, also candidates for stable kernels. They IMHO qualify for a late rc, though I did not expect that many. The commit date may differ from author date because I added the stable and Fixes tags where missing. There are no merge conflicts against current master. Please pull, thanks. The following changes since commit a6aa10c70bf72fb28504cb5de5deac75da78b0f5: Btrfs: send, fix missing truncate for inode with prealloc extent past eof (2018-05-02 11:55:29 +0200) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-4.17-rc5-tag for you to fetch changes up to 02ee654d3a04563c67bfe658a05384548b9bb105: btrfs: fix crash when trying to resume balance without the resume flag (2018-05-17 14:38:24 +0200) Anand Jain (1): btrfs: fix crash when trying to resume balance without the resume flag Filipe Manana (2): Btrfs: fix xattr loss after power failure Btrfs: fix duplicate extents after fsync of file with prealloc extents Liu Bo (1): btrfs: fix reading stale metadata blocks after degraded raid1 mounts Misono Tomohiro (1): btrfs: property: Set incompat flag if lzo/zstd compression is set Nikolay Borisov (2): btrfs: Split btrfs_del_delalloc_inode into 2 functions btrfs: Fix delalloc inodes invalidation during transaction abort Robbie Ko (1): Btrfs: send, fix invalid access to commit roots due to concurrent snapshotting fs/btrfs/ctree.c| 22 ++-- fs/btrfs/ctree.h| 2 + fs/btrfs/disk-io.c | 26 ++ fs/btrfs/inode.c| 13 +++-- fs/btrfs/props.c| 12 +++-- fs/btrfs/tree-log.c | 144 +++- fs/btrfs/volumes.c | 9 7 files changed, 180 insertions(+), 48 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[GIT PULL] Btrfs updates for 4.17-rc3
Hi, please pull the following branch with 2 regression fixes and one fix for stable. Thanks. The following changes since commit c0872323746e11fc79344e3738b283a8cda86654: btrfs: print-tree: debugging output enhancement (2018-04-20 19:18:16 +0200) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-4.17-rc3-tag for you to fetch changes up to a6aa10c70bf72fb28504cb5de5deac75da78b0f5: Btrfs: send, fix missing truncate for inode with prealloc extent past eof (2018-05-02 11:55:29 +0200) Filipe Manana (1): Btrfs: send, fix missing truncate for inode with prealloc extent past eof Qu Wenruo (1): btrfs: Fix wrong first_key parameter in replace_path ethanwu (1): btrfs: Take trans lock before access running trans in check_delayed_ref fs/btrfs/extent-tree.c | 7 +++ fs/btrfs/relocation.c | 2 +- fs/btrfs/send.c| 4 3 files changed, 12 insertions(+), 1 deletion(-) -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[GIT PULL] Btrfs fixes for 4.17-rc1
Hi, the branch contains a few fixups to qgroup patches that were merged this dev cycle, unaligned access fix, blockgroup removal corner case fix and a small debugging output tweak. Please pull, thanks. The following changes since commit 5d41be6f702f19f72db816c17175caf9dbdcdfa6: btrfs: Only check first key for committed tree blocks (2018-04-13 16:16:15 +0200) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-4.17-rc1-tag for you to fetch changes up to c0872323746e11fc79344e3738b283a8cda86654: btrfs: print-tree: debugging output enhancement (2018-04-20 19:18:16 +0200) David Sterba (1): btrfs: fix unaligned access in readdir Nikolay Borisov (1): btrfs: Fix race condition between delayed refs and blockgroup removal Qu Wenruo (5): btrfs: qgroup: Commit transaction in advance to reduce early EDQUOT btrfs: qgroup: Use independent and accurate per inode qgroup rsv btrfs: delayed-inode: Remove wrong qgroup meta reservation calls btrfs: Fix wrong btrfs_delalloc_release_extents parameter btrfs: print-tree: debugging output enhancement fs/btrfs/ctree.h | 25 + fs/btrfs/delayed-inode.c | 20 ++--- fs/btrfs/delayed-ref.c | 19 + fs/btrfs/delayed-ref.h | 1 + fs/btrfs/disk-io.c | 1 + fs/btrfs/extent-tree.c | 73 +--- fs/btrfs/file.c | 2 +- fs/btrfs/inode.c | 20 +++-- fs/btrfs/print-tree.c| 25 ++--- fs/btrfs/print-tree.h| 2 +- fs/btrfs/qgroup.c| 43 ++-- fs/btrfs/transaction.c | 1 + fs/btrfs/transaction.h | 14 ++ 13 files changed, 199 insertions(+), 47 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[GIT PULL] Btrfs updates for 4.17, part 2
Hi, we have queued a few more fixes (error handling, log replay, softlockup) and the rest is SPDX update that touches almost all files so the diffstat is long. The top patch is a fixup for excessive warning and was not in linux-next but I've tested it locally. Please pull, thanks. The following changes since commit 57599c7e7722daf5f8c2dba4b0e4628f5c500771: btrfs: lift errors from add_extent_changeset to the callers (2018-03-31 02:03:25 +0200) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-4.17-part2-tag for you to fetch changes up to 5d41be6f702f19f72db816c17175caf9dbdcdfa6: btrfs: Only check first key for committed tree blocks (2018-04-13 16:16:15 +0200) David Sterba (3): btrfs: replace GPL boilerplate by SPDX -- headers btrfs: replace GPL boilerplate by SPDX -- sources btrfs: add SPDX header to Kconfig Filipe Manana (1): Btrfs: fix loss of prealloc extents past i_size after fsync log replay Liu Bo (3): Btrfs: fix NULL pointer dereference in log_dir_items Btrfs: bail out on error during replay_dir_deletes Btrfs: clean up resources during umount after trans is aborted Nikolay Borisov (1): btrfs: Fix possible softlock on single core machines Qu Wenruo (1): btrfs: Only check first key for committed tree blocks fs/btrfs/Kconfig | 2 + fs/btrfs/acl.c | 15 +- fs/btrfs/async-thread.c| 15 +- fs/btrfs/async-thread.h| 21 ++-- fs/btrfs/backref.c | 15 +- fs/btrfs/backref.h | 19 ++-- fs/btrfs/btrfs_inode.h | 19 ++-- fs/btrfs/check-integrity.c | 15 +- fs/btrfs/check-integrity.h | 19 ++-- fs/btrfs/compression.c | 15 +- fs/btrfs/compression.h | 19 ++-- fs/btrfs/ctree.c | 15 +- fs/btrfs/ctree.h | 20 ++-- fs/btrfs/dedupe.h | 20 ++-- fs/btrfs/delayed-inode.c | 15 +- fs/btrfs/delayed-inode.h | 19 ++-- fs/btrfs/delayed-ref.c | 15 +- fs/btrfs/delayed-ref.h | 21 ++-- fs/btrfs/dev-replace.c | 16 +- fs/btrfs/dev-replace.h | 20 ++-- fs/btrfs/dir-item.c| 15 +- fs/btrfs/disk-io.c | 26 +- fs/btrfs/disk-io.h | 20 ++-- fs/btrfs/export.c | 1 + fs/btrfs/export.h | 1 + fs/btrfs/extent-tree.c | 17 ++- fs/btrfs/extent_io.c | 1 + fs/btrfs/extent_io.h | 6 ++- fs/btrfs/extent_map.c | 1 + fs/btrfs/extent_map.h | 6 ++- fs/btrfs/file-item.c | 15 +- fs/btrfs/file.c| 15 +- fs/btrfs/free-space-cache.c| 15 +- fs/btrfs/free-space-cache.h| 19 ++-- fs/btrfs/free-space-tree.c | 15 +- fs/btrfs/free-space-tree.h | 19 ++-- fs/btrfs/inode-item.c | 15 +- fs/btrfs/inode-map.c | 15 +- fs/btrfs/inode-map.h | 5 +- fs/btrfs/inode.c | 15 +- fs/btrfs/ioctl.c | 15 +- fs/btrfs/locking.c | 16 +- fs/btrfs/locking.h | 19 ++-- fs/btrfs/lzo.c | 15 +- fs/btrfs/math.h| 20 ++-- fs/btrfs/ordered-data.c| 15 +- fs/btrfs/ordered-data.h| 20 ++-- fs/btrfs/orphan.c | 15 +- fs/btrfs/print-tree.c | 15 +- fs/btrfs/print-tree.h | 21 ++-- fs/btrfs/props.c | 15 +- fs/btrfs/props.h | 19 ++-- fs/btrfs/qgroup.c | 15 +- fs/btrfs/qgroup.h | 22 ++--- fs/btrfs/raid56.c | 16 +- fs/btrfs/raid56.h | 21 ++-- fs/btrfs/rcu-string.h | 20 +++- fs/btrfs/reada.c | 15 +- fs/btrfs/ref-verify.c | 15 +- fs/btrfs/ref-verify.h | 23 +++-- fs/btrfs/relocation.c | 15 +- fs/btrfs/root-tree.c | 15 +- fs/btrfs/scrub.c | 15 +- fs/btrfs/send.c| 15 +- fs/btrfs/send.h| 20 +++- fs/btrfs/struct-funcs.c| 15 +- fs/btrfs/super.c | 15 +- fs
[GIT PULL] Btrfs updates for 4.17
Hi, please pull the following btrfs changes. There are a several user visible changes, the rest is mostly invisible and continues to clean up the whole code base. There are no merge conflicts with current master. Please pull, thanks. User visible changes: - new mount option nossd_spread (pair for ssd_spread) - mount option subvolid will detect junk after the number and fail the mount - add message after cancelled device replace - direct module dependency on libcrc32, removed own crc wrappers - removed user space transaction ioctls - use lighter locking when reading /proc/self/mounts, RCU instead of mutex to avoid unnecessary contention Enhancements: - skip writeback of last page when truncating file to same size - send: do not issue unnecessary truncate operations - mount option token specifiers: use %u for unsigned values, more validation - selftests: more tree block validations qgroups: - preparatory work for splitting reservation types for data and metadata, this should allow for more accurate tracking and fix some issues with underflows or do further enhancements - split metadata reservations for started and joined transaction so they do not get mixed up and are accounted correctly at commit time - with the above, it's possible to revert patch that potentially deadlocks when trying to make more space by explicitly committing when the quota limit is hit - fix root item corruption when multiple same source snapshots are created with quota enabled RAID56: - make sure target is identical to source when raid56 rebuild fails after dev-replace - faster rebuild during scrub, batch by stripes and not block-by-block - make more use of cached data when rebuilding from a missing device Fixes: - null pointer deref when device replace target is missing - fix fsync after hole punching when using no-holes feature - fix lockdep splat when allocating percpu data with wrong GFP flags Cleanups, refactoring, core changes: - drop redunant parameters from various functions - kill and opencode trivial helpers - __cold/__exit function annotations - dead code removal - continued audit and documentation of memory barriers - error handling: handle removal from uuid tree - error handling: remove handling of impossible condtitons - more debugging or error messages - updated tracepoints - 1 VLA use removal (1 still left) The following changes since commit 3eb2ce825ea1ad89d20f7a3b5780df850e4be274: Linux 4.16-rc7 (2018-03-25 12:44:30 -1000) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-4.17-tag for you to fetch changes up to 57599c7e7722daf5f8c2dba4b0e4628f5c500771: btrfs: lift errors from add_extent_changeset to the callers (2018-03-31 02:03:25 +0200) Anand Jain (25): btrfs: open code btrfs_dev_replace_cancel() btrfs: rename __btrfs_dev_replace_cancel() btrfs: btrfs_dev_replace_cancel() can return int btrfs: open code btrfs_init_dev_replace_tgtdev_for_resume() btrfs: extent_buffer_uptodate() make it static and inline btrfs: manage thread_pool mount option as %u btrfs: manage metadata_ratio mount option as %u btrfs: manage check_int_print_mask mount option as %u btrfs: manage commit mount option as %u btrfs: add a comment to mark the deprecated mount option btrfs: fix null pointer deref when target device is missing btrfs: log, when replace, is canceled by the user btrfs: remove unused function btrfs_async_submit_limit() btrfs: cow_file_range() num_bytes and disk_num_bytes are same btrfs: use ASSERT to report logical error in cow_file_range() btrfs: not a disk error if the bio_add_page fails btrfs: keep device list sorted btrfs: insert newly opened device to the end of the list btrfs: verify subvolid mount parameter btrfs: remove assert in btrfs_init_dev_replace_tgtdev() btrfs: unify types for metadata_ratio and data_chunk_allocations btrfs: rename btrfs_close_extra_device to btrfs_free_extra_devids btrfs: add define for oldest generation btrfs: drop num argument from find_live_mirror() btrfs: drop optimal argument from find_live_mirror() Colin Ian King (2): btrfs: remove redundant check on ret and goto Btrfs: extent map selftest: add missing void parameter to btrfs_test_extent_map David Sterba (37): btrfs: add (the only possible) __exit annotation btrfs: add more __cold annotations btrfs: drop underscores from exported xattr functions btrfs: drop extern from function declarations btrfs: adjust return type of btrfs_getxattr btrfs: move btrfs_listxattr prototype to xattr.h btrfs: open code trivial helper
[GIT PULL] Btrfs fixes for 4.16-rc6
Hi, there's an important revert in this pull request that needs to go to stable as it causes a corruption on big endian machines. The other fix is for FIEMAP incorrectly reporting shared extents before a sync and one fix for a crash in raid56. So far we got only one report about the BE corruption, the stable kernels were out for like a week, so hopefully the scope of the damage is low. Please pull, thanks. The following changes since commit 1f250e929a9c9332fd6ea34da684afee73837cfe: Btrfs: fix log replay failure after unlink and link combination (2018-03-01 16:18:40 +0100) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-4.16-rc5-tag for you to fetch changes up to 093e037ca88e1767693bc6bcb2df3f49c6be68c7: Revert "btrfs: use proper endianness accessors for super_copy" (2018-03-16 14:49:44 +0100) David Sterba (1): Revert "btrfs: use proper endianness accessors for super_copy" Dmitriy Gorokh (1): btrfs: Fix NULL pointer exception in find_bio_stripe Edmund Nadolski (1): btrfs: add missing initialization in btrfs_check_shared fs/btrfs/backref.c | 1 + fs/btrfs/raid56.c | 1 + fs/btrfs/sysfs.c | 8 +--- fs/btrfs/transaction.c | 20 4 files changed, 15 insertions(+), 15 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[GIT PULL] Btrfs fixes for 4.16-rc4
Hi, please consider the follwing btrfs updates, there are bugfixes or fixes for user visible behaviour. No merge conflicts. Please pull, thanks. - when NR_CPUS is large, a SRCU structure can significantly inflate size of the main filesystem structure that would not be possible to allocate by kmalloc, so the kvalloc fallback is used - improved error handling - fix endiannes when printing some filesystem attributes via sysfs, this is could happen when a filesystem is moved between different endianity hosts - send fixes: the NO_HOLE mode should not send a write operation for a file hole - fix log replay for for special files followed by file hardlinks - fix log replay failure after unlink and link combination - fix max chunk size calculation for DUP allocation The following changes since commit fd649f10c3d21ee9d7542c609f29978bdf73ab94: btrfs: Fix use-after-free when cleaning up fs_devs with a single stale device (2018-02-05 17:15:14 +0100) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-4.16-rc3-tag for you to fetch changes up to 1f250e929a9c9332fd6ea34da684afee73837cfe: Btrfs: fix log replay failure after unlink and link combination (2018-03-01 16:18:40 +0100) Anand Jain (1): btrfs: use proper endianness accessors for super_copy Filipe Manana (3): Btrfs: send, fix issuing write op when processing hole in no data mode Btrfs: fix log replay failure after linking special file and fsync Btrfs: fix log replay failure after unlink and link combination Hans van Kranenburg (1): btrfs: alloc_chunk: fix DUP stripe size handling Jeff Mahoney (1): btrfs: use kvzalloc to allocate btrfs_fs_info Nikolay Borisov (2): btrfs: handle failure of add_pending_csums btrfs: Handle btrfs_set_extent_delalloc failure in relocate_file_extent_cluster fs/btrfs/ctree.h | 7 ++- fs/btrfs/inode-item.c | 44 +++ fs/btrfs/inode.c | 11 - fs/btrfs/relocation.c | 18 +++- fs/btrfs/send.c| 3 ++ fs/btrfs/super.c | 2 +- fs/btrfs/sysfs.c | 8 ++-- fs/btrfs/transaction.c | 20 + fs/btrfs/tree-log.c| 114 +++-- fs/btrfs/volumes.c | 11 ++--- 10 files changed, 191 insertions(+), 47 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[GIT PULL] Btrfs fixes for 4.16-rc1
Hi, we have a few assorted fixes, some of them show up during fstests so I gave them more testing. Please pull, thanks. The following changes since commit 3acbcbfc8f06d4ade2aab2ebba0a2542a05ce90c: btrfs: drop devid as device_list_add() arg (2018-01-29 19:31:16 +0100) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-4.16-rc1-tag for you to fetch changes up to fd649f10c3d21ee9d7542c609f29978bdf73ab94: btrfs: Fix use-after-free when cleaning up fs_devs with a single stale device (2018-02-05 17:15:14 +0100) Filipe Manana (1): Btrfs: fix null pointer dereference when replacing missing device Liu Bo (6): Btrfs: fix deadlock in run_delalloc_nocow Btrfs: fix crash due to not cleaning up tree log block's dirty bits Btrfs: fix extent state leak from tree log Btrfs: fix btrfs_evict_inode to handle abnormal inodes correctly Btrfs: fix use-after-free on root->orphan_block_rsv Btrfs: fix unexpected -EEXIST when creating new inode Nikolay Borisov (2): btrfs: Ignore errors from btrfs_qgroup_trace_extent_post btrfs: Fix use-after-free when cleaning up fs_devs with a single stale device Zygo Blaxell (1): btrfs: remove spurious WARN_ON(ref->count < 0) in find_parent_nodes fs/btrfs/backref.c | 11 ++- fs/btrfs/delayed-ref.c | 3 ++- fs/btrfs/extent-tree.c | 4 fs/btrfs/inode.c | 41 ++--- fs/btrfs/qgroup.c | 9 +++-- fs/btrfs/tree-log.c| 32 ++-- fs/btrfs/volumes.c | 1 + 7 files changed, 80 insertions(+), 21 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[GIT PULL] Btrfs for 4.16
Hi, the btrfs updates for this cycle are mostly cleanups with a few raid56 bugfixes and some feature additions. Please pull, thanks. Features or user visible changes: - fallocate: implement zero range mode - avoid losing data raid profile when deleting a device - tree item checker: more checks for directory items and xattrs Notable fixes: - raid56 recovery: don't use cached stripes, that could be potentially changed and a later RMW or recovery would lead to corruptions or failures - let raid56 try harder to rebuild damaged data, reading from all stripes if necessary - fix scrub to repair raid56 in a similar way as in the case above Other: - cleanups: device freeing, removed some call indirections, redundant bio_put/_get, unused parameters, refactorings and renames - RCU list traversal fixups - simplify mount callchain, remove recursing back when mounting a subvolume - plug for fsync, may improve bio merging on multiple devices - compression heurisic: replace heap sort with radix sort, gains some performance - add extent map selftests, buffered write vs dio The following changes since commit 0c5b9b5d9adbad4b60491f9ba0d2af38904bb4b9: Linux 4.15-rc9 (2018-01-21 13:51:26 -0800) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-4.16-tag for you to fetch changes up to 3acbcbfc8f06d4ade2aab2ebba0a2542a05ce90c: btrfs: drop devid as device_list_add() arg (2018-01-29 19:31:16 +0100) Anand Jain (33): btrfs: clean up btrfs_dev_stat_inc usage btrfs: move volume_mutex into the btrfs_rm_device() btrfs: rename btrfs_add_device to btrfs_add_dev_item btrfs: set fs_devices->seed directly btrfs: move check for device generation to the last btrfs: factor __btrfs_open_devices() to create btrfs_open_one_device() btrfs: drop btrfs_device::can_discard to query directly btrfs: add helper for device path or missing btrfs: cleanup device states define BTRFS_DEV_STATE_WRITEABLE btrfs: cleanup device states define BTRFS_DEV_STATE_IN_FS_METADATA btrfs: cleanup device states define BTRFS_DEV_STATE_MISSING btrfs: cleanup device states define BTRFS_DEV_STATE_REPLACE_TGT btrfs: cleanup device states define BTRFS_DEV_STATE_FLUSH_SENT btrfs: put btrfs_ioctl_vol_args_v2 related defines together btrfs: factor btrfs_check_rw_degradable() to check given device btrfs: remove check for BTRFS_FS_STATE_ERROR which we just set btrfS: collapse btrfs_handle_error() into __btrfs_handle_fs_error() btrfs: rename btrfs_device::scrub_device to scrub_ctx btrfs: simplify mutex unlocking code in btrfs_commit_transaction btrfs: minor style cleanups in btrfs_scan_one_device btrfs: define SUPER_FLAG_METADUMP_V2 btrfs: add support for SUPER_FLAG_CHANGING_FSID btrfs: fail mount when sb flag is not in BTRFS_SUPER_FLAG_SUPP btrfs: cleanup btrfs_free_stale_device() usage btrfs: no need to check for btrfs_fs_devices::seeding btrfs: make btrfs_free_stale_device() to iterate all stales btrfs: make btrfs_free_stale_devices() argument optional btrfs: rename btrfs_free_stale_devices() arg to skip_dev btrfs: make btrfs_free_stale_devices() to match the path btrfs: move pr_info into device_list_add btrfs: set the total_devices in device_list_add() btrfs: get device pointer from device_list_add() btrfs: drop devid as device_list_add() arg Arnd Bergmann (1): btrfs: tree-checker: use %zu format string for size_t Colin Ian King (1): btrfs: make function update_share_count static David Sterba (46): btrfs: rename device free rcu helper to free_device_rcu btrfs: introduce free_device helper btrfs: use free_device where opencoded btrfs: simplify exit paths in btrfs_init_new_device btrfs: document device locking btrfs: simplify btrfs_close_bdev btrfs: switch to RCU for device traversal in btrfs_ioctl_dev_info btrfs: switch to RCU for device traversal in btrfs_ioctl_fs_info btrfs: use non-RCU list traversal in write_all_supers callees btrfs: prepare to drop gfp mask parameter from clear_extent_bit btrfs: sink gfp parameter to clear_extent_bit btrfs: sink gfp parameter to clear_extent_uptodate btrfs: use GFP_KERNEL in btrfs_alloc_inode btrfs: sink get_extent parameter to extent_writepages btrfs: sink get_extent parameter to extent_write_locked_range btrfs: sink get_extent parameter to extent_write_full_page btrfs: drop get_extent from extent_page_data btrfs: sink get_extent parameter to extent_fiemap btrfs: sink get_extent parameter to get_extent_skip_holes btrfs: sink get_extent parameter to extent_readpages btrfs: sink get_extent pa
[GIT PULL] Btrfs readdir fix for 4.15
Hi, please consider pulling the fix to 4.15. It's been reported recently that readdir can list stale entries under some conditions. As it is a user visible bug I'd like to get it fix despite we're in the late rc. Thanks. The following changes since commit ec35e48b286959991cdbb886f1bdeda4575c80b4: btrfs: fix refcount_t usage when deleting btrfs_delayed_nodes (2018-01-02 18:00:14 +0100) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-4.15-tag for you to fetch changes up to e4fd493c0541d36953f7b9d3bfced67a1321792f: Btrfs: fix stale entries in readdir (2018-01-24 20:27:48 +0100) Josef Bacik (1): Btrfs: fix stale entries in readdir fs/btrfs/delayed-inode.c | 26 -- 1 file changed, 8 insertions(+), 18 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[GIT PULL] Btrfs fixes for 4.15-rc7
Hi, we have two more fixes for 4.15, aimed for stable. The leak fix is obvious, the second patch fixes a bug revealed by the refcount API, when it behaves differently than previous atomic_t and reports refs going from 0 to 1 in one case. No merge conflicts. Please pull, thanks. The following changes since commit c8bcbfbd239ed60a6562964b58034ac8a25f4c31: btrfs: Fix possible off-by-one in btrfs_search_path_in_tree (2017-12-07 00:35:15 +0100) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-4.15-rc7-tag for you to fetch changes up to ec35e48b286959991cdbb886f1bdeda4575c80b4: btrfs: fix refcount_t usage when deleting btrfs_delayed_nodes (2018-01-02 18:00:14 +0100) Chris Mason (1): btrfs: fix refcount_t usage when deleting btrfs_delayed_nodes Nikolay Borisov (1): btrfs: Fix flush bio leak fs/btrfs/delayed-inode.c | 45 ++--- fs/btrfs/volumes.c | 1 - 2 files changed, 34 insertions(+), 12 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[GIT PULL] Btrfs fixes for 4.15-rc3
Hi, this update contains a few fixes (error handling, quota leak, FUA vs nobarrier mount option). There's one one worth mentioning separately - an off-by-one fix that leads to overwriting first byte of an adjacent page with 0, out of bounds of the memory allocated by an ioctl. This is under a privileged part of the ioctl, can be triggerd in some subvolume layouts. After the last tags and branches mess [1], let me note that the pull url is pointed to the signed tag. There are no merge conflics. Please pull, thanks. [1] https://lkml.org/lkml/2017/11/29/952 The following changes since commit ea37d5998b50a72b9045ba60a132eeb20e1c4230: Btrfs: incremental send, fix wrong unlink path after renaming file (2017-11-28 17:15:30 +0100) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-4.15-rc3-tag for you to fetch changes up to c8bcbfbd239ed60a6562964b58034ac8a25f4c31: btrfs: Fix possible off-by-one in btrfs_search_path_in_tree (2017-12-07 00:35:15 +0100) Jeff Mahoney (2): btrfs: handle errors while updating refcounts in update_ref_for_cow btrfs: fix missing error return in btrfs_drop_snapshot Justin Maggard (1): btrfs: Fix quota reservation leak on preallocated files Nikolay Borisov (1): btrfs: Fix possible off-by-one in btrfs_search_path_in_tree Omar Sandoval (1): Btrfs: disable FUA if mounted with nobarrier fs/btrfs/ctree.c | 18 -- fs/btrfs/disk-io.c | 12 +--- fs/btrfs/extent-tree.c | 1 + fs/btrfs/inode.c | 2 ++ fs/btrfs/ioctl.c | 2 +- 5 files changed, 21 insertions(+), 14 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [GIT PULL] Btrfs fixes for 4.15-rc2
On Wed, Nov 29, 2017 at 02:31:24PM -0800, Linus Torvalds wrote: > On Wed, Nov 29, 2017 at 11:28 AM, David Sterba wrote: > > > > With signed tag: for-4.15-rc2-tag > > > > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-4.15-rc2 > > Oh, please actually ask me to pull the signed tag (exact same > pull-request, just point git request-pull at the tag), Will do next time. > because now > what happened was that first I just pulled that branch you mentioned, > and only noticed that "With signed tag:" notice after I had already > pulled and was filling in the merge message. > > Anyway, I redid the pull with the proper signed tag, but it was just > annoying extra work. > > And I wonder how many times I _hadn't_ noticed that, because I didn't > have your key in my keyring either. Or maybe I caught it the first > time. All my previous pull requests were like that. I did the split branch/tag beacuse the ambiguous name for branch and brings some hassle to push or remove them. I thought a separate tag with same top commit as the branch plus mentioning the tag in the mail would be enough to verify the pulled branch. But apparently was not, sorry for the trouble. -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [GIT PULL] Btrfs fixes for 4.15-rc2
On Wed, Nov 29, 2017 at 11:28 AM, David Sterba wrote: > > With signed tag: for-4.15-rc2-tag > > git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-4.15-rc2 Oh, please actually ask me to pull the signed tag (exact same pull-request, just point git request-pull at the tag), because now what happened was that first I just pulled that branch you mentioned, and only noticed that "With signed tag:" notice after I had already pulled and was filling in the merge message. Anyway, I redid the pull with the proper signed tag, but it was just annoying extra work. And I wonder how many times I _hadn't_ noticed that, because I didn't have your key in my keyring either. Or maybe I caught it the first time. Linus -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[GIT PULL] Btrfs fixes for 4.15-rc2
Hi, we've collected some fixes in since the pre-merge window freeze. There's technically only one regression fix for 4.15, but the rest seems important and candidates for stable. No merge conflicts, please pull, thanks. - fix missing flush bio puts in error cases (is serious, but rarely happens) - fix reporting stat::st_blocks for buffered append writes - fix space cache invalidation - fix out of bound memory access when setting zlib level - fix potential memory corruption when fsync fails in the middle - fix crash in integrity checker - incremetnal send fix, path mixup for certain unlink/rename combination - pass flags to writeback so compressed writes can be throttled properly - error handling fixes With signed tag: for-4.15-rc2-tag The following changes since commit d28e649a5c58b779b303c252c66ee84a0f2c3b32: btrfs: Fix bug for misused dev_t when lookup in dev state hash table. (2017-11-01 20:45:36 +0100) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-4.15-rc2 for you to fetch changes up to ea37d5998b50a72b9045ba60a132eeb20e1c4230: Btrfs: incremental send, fix wrong unlink path after renaming file (2017-11-28 17:15:30 +0100) David Sterba (2): btrfs: add missing device::flush_bio puts btrfs: dev_alloc_list is not protected by RCU, use normal list_del Filipe Manana (3): Btrfs: move definition of the function btrfs_find_new_delalloc_bytes Btrfs: fix reported number of inode blocks after buffered append writes Btrfs: incremental send, fix wrong unlink path after renaming file Josef Bacik (2): btrfs: clear space cache inode generation always btrfs: fix deadlock when writing out space cache Liu Bo (3): Btrfs: add write_flags for compression bio Btrfs: bail out gracefully rather than BUG_ON Btrfs: fix list_add corruption and soft lockups in fsync Nikolay Borisov (1): btrfs: Fix transaction abort during failure in btrfs_rm_dev_item Qu Wenruo (2): btrfs: Fix wild memory access in compression level parser btrfs: tree-checker: Fix false panic for sanity test fs/btrfs/compression.c | 9 +-- fs/btrfs/compression.h | 5 +- fs/btrfs/ctree.h | 1 + fs/btrfs/disk-io.c | 10 ++- fs/btrfs/extent-tree.c | 14 ++--- fs/btrfs/extent_io.c | 2 +- fs/btrfs/extent_io.h | 8 ++- fs/btrfs/file.c | 130 +-- fs/btrfs/free-space-cache.c | 3 +- fs/btrfs/inode.c | 34 +++--- fs/btrfs/relocation.c| 3 +- fs/btrfs/send.c | 124 +++-- fs/btrfs/super.c | 13 +++- fs/btrfs/tests/extent-io-tests.c | 6 +- fs/btrfs/tests/inode-tests.c | 12 ++-- fs/btrfs/tree-checker.c | 27 ++-- fs/btrfs/tree-checker.h | 14 - fs/btrfs/tree-log.c | 2 +- fs/btrfs/volumes.c | 32 +++--- 19 files changed, 314 insertions(+), 135 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html