Re: [GIT PULL] Btrfs fix for 5.12-rc7

2021-04-11 Thread pr-tracker-bot
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

2021-04-11 Thread David Sterba
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

2021-03-25 Thread pr-tracker-bot
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

2021-03-25 Thread David Sterba
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

2021-03-18 Thread pr-tracker-bot
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

2021-03-18 Thread David Sterba
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

2021-03-05 Thread pr-tracker-bot
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

2021-03-05 Thread David Sterba
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

2021-03-01 Thread pr-tracker-bot
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

2021-03-01 Thread David Sterba
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

2021-02-21 Thread pr-tracker-bot
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

2021-02-16 Thread David Sterba
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

2021-02-13 Thread pr-tracker-bot
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

2021-02-13 Thread David Sterba
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

2021-01-30 Thread pr-tracker-bot
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

2021-01-29 Thread Linus Torvalds
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

2021-01-29 Thread David Sterba
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

2021-01-20 Thread pr-tracker-bot
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

2021-01-20 Thread David Sterba
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

2021-01-11 Thread pr-tracker-bot
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

2021-01-11 Thread David Sterba
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

2021-01-06 Thread pr-tracker-bot
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

2021-01-06 Thread David Sterba
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

2020-12-15 Thread pr-tracker-bot
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

2019-10-23 Thread pr-tracker-bot
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

2019-10-22 Thread David Sterba
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

2019-10-22 Thread David Sterba
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

2019-10-10 Thread pr-tracker-bot
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

2019-10-10 Thread David Sterba
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

2019-09-30 Thread pr-tracker-bot
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

2019-09-30 Thread David Sterba
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

2019-09-18 Thread pr-tracker-bot
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

2019-09-16 Thread David Sterba
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

2019-09-16 Thread David Sterba
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

2019-08-18 Thread pr-tracker-bot
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

2019-08-18 Thread David Sterba
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

2019-08-02 Thread pr-tracker-bot
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

2019-08-02 Thread David Sterba
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

2019-07-26 Thread pr-tracker-bot
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

2019-07-26 Thread David Sterba
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

2019-07-22 Thread pr-tracker-bot
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

2019-07-22 Thread David Sterba
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

2019-07-16 Thread pr-tracker-bot
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

2019-07-15 Thread David Sterba
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

2019-06-18 Thread pr-tracker-bot
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

2019-06-18 Thread David Sterba
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

2019-06-11 Thread pr-tracker-bot
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

2019-06-11 Thread David Sterba
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

2019-05-30 Thread pr-tracker-bot
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

2019-05-30 Thread David Sterba
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

2019-05-20 Thread pr-tracker-bot
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

2019-05-20 Thread David Sterba
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

2019-03-07 Thread pr-tracker-bot
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

2019-03-04 Thread David Sterba
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

2019-02-18 Thread David Sterba
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

2019-02-18 Thread Alex Lyakas
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

2019-02-03 Thread pr-tracker-bot
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

2019-02-03 Thread David Sterba
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

2019-01-20 Thread pr-tracker-bot
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

2019-01-20 Thread David Sterba
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

2019-01-13 Thread pr-tracker-bot
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

2019-01-13 Thread David Sterba
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

2018-12-27 Thread pr-tracker-bot
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

2018-12-19 Thread David Sterba
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

2018-12-05 Thread pr-tracker-bot
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

2018-12-05 Thread David Sterba
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

2018-11-28 Thread pr-tracker-bot
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

2018-11-28 Thread David Sterba
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

2018-11-11 Thread pr-tracker-bot
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

2018-11-11 Thread David Sterba
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

2018-10-30 Thread Linus Torvalds
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

2018-10-30 Thread David Sterba
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

2018-10-24 Thread Linus Torvalds
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

2018-10-23 Thread David Sterba
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

2018-10-22 Thread Liu Bo
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

2018-10-22 Thread David Sterba
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

2018-06-28 Thread Anand Jain




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

2018-06-28 Thread David Sterba
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

2018-06-28 Thread Anand Jain




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

2018-06-11 Thread David Sterba
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

2018-06-11 Thread Filipe Manana
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

2018-06-11 Thread Anand Jain




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

2018-06-09 Thread Filipe Manana
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

2018-05-24 Thread David Sterba
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

2018-05-20 Thread Linus Torvalds
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

2018-05-20 Thread David Sterba
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

2018-05-04 Thread David Sterba
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

2018-04-22 Thread David Sterba
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

2018-04-15 Thread David Sterba
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

2018-04-03 Thread David Sterba
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

2018-03-16 Thread David Sterba
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

2018-03-04 Thread David Sterba
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

2018-02-16 Thread David Sterba
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

2018-01-29 Thread David Sterba
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

2018-01-25 Thread David Sterba
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

2018-01-05 Thread David Sterba
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

2017-12-09 Thread David Sterba
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

2017-11-30 Thread David Sterba
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

2017-11-29 Thread Linus Torvalds
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

2017-11-29 Thread David Sterba
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


  1   2   3   4   5   6   >