linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PULL REQUEST] btrfs-progs updates, the main part
@ 2019-04-11  5:54 Qu Wenruo
  2019-04-15 16:27 ` David Sterba
  0 siblings, 1 reply; 4+ messages in thread
From: Qu Wenruo @ 2019-04-11  5:54 UTC (permalink / raw)
  To: David Sterba, linux-btrfs


[-- Attachment #1.1: Type: text/plain, Size: 9172 bytes --]

Hi David,

Here is my pull request for the btrfs-progs:
https://github.com/adam900710/btrfs-progs/tree/for_devel

The basis is the following commit from your devel branch:
commit a8389337c5a0e7c3fb32ff91d557889c036da73a
Author: Adam Borowski <kilobyte@angband.pl>
Date:   Mon Feb 25 19:16:44 2019 +0100

    btrfs-progs: defrag: open files RO on new enough kernels

This branch drops the following commit in your devel branch:
commit 4e8eb31f048f3fe9a68aacb58e4c0714df25b5c4 (david/devel)
Author: Qu Wenruo <wqu@suse.com>
Date:   Fri Sep 14 15:49:44 2018 +0800

    btrfs-progs: Do metadata preallocation as long as we're not
modifying extent tree

Due to test failure on looping chunk allocation.

The branch passes all selftests, except misc/035 which is a known problem.

This pull request include the following features:

Core change:
- check --repair
  * Flush/FUA support to avoid breaking metadata CoW
      Now btrfs-progs crashing or transaction aborted won't cause
      new transid error.
- device scan:
  * Add the ability to forget a device

Fixes and Enhancement:
- generic
  * Try best copy when reading tree blocks.
  * Skip unnecessary retry when one tree block copy fails.
  * Avoid back tree block to populate tree block cache.
- check
  * File extents repair no longer relies data in extent tree.
  * New ability to check and repair free space cache invalid inode mode.
  * Update backup roots when commit transaction.
- mkfs:
  * Enlarge metadata chunk size to follow kernel size.
- defrag
  * open file in RO for newer kernel.
- gitignore
  * Ignore hidden files.
- qgroup report
  * Handle unrecognized sort string.
- receive
  * New quite mode.
- Misc
  * More cleanup for fs_info <-> root parameters.

Adam Borowski (2):
  btrfs-progs: fix kernel version parsing on some versions past 3.0
  btrfs-progs: defrag: open files RO on new enough kernels

Anand Jain (3):
  btrfs-progs: device scan: add new option to forget one or all scanned
    devices
  btrfs-progs: dev replace: check for no result before using results
  btrfs-progs: dev replace: gracefully handle the exclusive operation
    report

David Sterba (21):
  btrfs-progs: device scan: constify path argument
  btrfs-progs: device scan: update help text
  btrfs-progs: device scan: update help text
  btrfs-progs: docs: add scan --forget
  btrfs-progs: device scan: update error messages
  btrfs-progs: device: update help texts
  btrfs-progs: help: add helper for unrecognized option error message
  btrfs-progs: help: update messages of argc constraint checkers
  btrfs-progs: help: use unknown command option helper
  btrfs-progs: help: don't print usage on wrong argument counts
  btrfs-progs: prop: let parsing helper return error to the caller
  btrfs-progs: prop: don't print full usage on invalid arguments
  btrfs-progs: prop: return only common error values
  btrfs-progs: find-root: use common usage helper for uknown option
  btrfs-progs: find-root: don't dump usage on wrong argument count
  btrfs-progs: find-root: use the common help infrastructure
  btrfs-progs: qgroup: report unknown option
  btrfs-progs: qgroup: remove unused option handling
  btrfs-progs: qgroup show: report errors while parsing sort string
  btrfs-progs: qgroup show: report unrecognized format of sort string
  btrfs-progs: qgoup: propagate errors from
    btrfs_qgroup_parse_sort_string

Lu Fengqi (2):
  btrfs-progs: lowmem: fix false alert about the existence of gaps in
    the check_file_extent
  btrfs-progs: tests: add case for inode lose one file extent

Nikolay Borisov (1):
  btrfs-progs: Remove get_argv0_buf

Qu Wenruo (20):
  btrfs-progs: Port kernel fs_devices::total_rw_bytes
  btrfs-progs: Unify metadata chunk size with kernel
  btrfs-progs: check: Fix false alert about uninitialized variable
  btrfs-progs: gitignore: Ignore hidden files
  btrfs-progs: Update backup roots when writing super blocks
  btrfs-progs: Free bad extent buffer as soon as possible
  btrfs-progs: Use @fs_info to replace @root for btrfs_check_leaf/node()
  btrfs-progs: Use mirror_num start from 1 to avoid unnecessary retry
  btrfs-progs: Move btrfs_num_copies() call out of the loop in
    read_tree_block()
  btrfs-progs: disk-io: Try to find a best copy when reading tree blocks
  btrfs-progs: check/lowmem: Add inode mode check
  btrfs-progs: check/original: Add inode mode check
  btrfs-progs: check/lowmem: Repair invalid inode mode in root tree
  btrfs-progs: check/original: Repair invalid inode mode in root tree
  btrfs-progs: check/lowmem: Check and repair free space cache inode
    mode
  btrfs-progs: check/original: Check and repair free space cache inode
    item
  btrfs-progs: tests/fsck: Add test image for free space cache mode
    repair
  btrfs-progs: disk-io: Make super block write error easier to read
  btrfs-progs: disk-io: Flush to ensure super block write is FUA
  btrfs-progs: Don't BUG_ON() when write_dev_supers() fails

Steven Davies (1):
  btrfs-progs: receive: add option for quiet mode

Su Yanjun (4):
  btrfs-progs: Revert "btrfs-progs: Add repair and report function for
    orphan file extent."
  btrfs-progs: Revert "btrfs-progs: Record orphan data extent ref to
    corresponding root."
  btrfs-progs: check: fix wrong @offset used in find_possible_backrefs()
  btrfs-progs: check: Delete file extent item with unaligned disk bytenr

Su Yue (7):
  btrfs-progs: lowmem: add argument path to punch_extent_hole()
  btrfs-progs: lowmem: move nbytes check before isize check
  btrfs-progs: lowmem: fix false alert if extent item has been repaired
  btrfs-progs: lowmem: check unaligned disk_bytenr for extent_data
  btrfs-progs: lowmem: rename delete_extent_tree_item() to delete_item()
  btrfs-progs: lowmem: delete unaligned bytes extent data under repair
  btrfs-progs: fsck-test: enable lowmem repair for case 001

 .gitignore                                    |   2 +-
 Documentation/btrfs-device.asciidoc           |  15 +-
 btrfs-corrupt-block.c                         |   2 +-
 btrfs-crc.c                                   |   4 +-
 btrfs-find-root.c                             |  35 +-
 btrfs-fragments.c                             |   2 +-
 btrfs-map-logical.c                           |   2 +-
 btrfs-select-super.c                          |   2 +-
 btrfstune.c                                   |   4 +-
 check/main.c                                  | 640 +++++++++++-------
 check/mode-common.c                           | 129 ++++
 check/mode-common.h                           |  29 +
 check/mode-lowmem.c                           | 323 +++++----
 check/mode-lowmem.h                           |   3 +
 check/mode-original.h                         |  31 +-
 cmds-balance.c                                |  14 +-
 cmds-device.c                                 | 112 ++-
 cmds-fi-du.c                                  |   4 +-
 cmds-fi-usage.c                               |   4 +-
 cmds-filesystem.c                             |  30 +-
 cmds-inspect-dump-super.c                     |   4 +-
 cmds-inspect-dump-tree.c                      |   4 +-
 cmds-inspect-tree-stats.c                     |   7 +-
 cmds-inspect.c                                |  19 +-
 cmds-property.c                               |  46 +-
 cmds-qgroup.c                                 |  42 +-
 cmds-quota.c                                  |   4 +-
 cmds-receive.c                                |  66 +-
 cmds-replace.c                                |  22 +-
 cmds-rescue.c                                 |  15 +-
 cmds-restore.c                                |   2 +-
 cmds-scrub.c                                  |  18 +-
 cmds-send.c                                   |   7 +-
 cmds-subvolume.c                              |  38 +-
 ctree.c                                       |  32 +-
 ctree.h                                       |  18 +-
 disk-io.c                                     | 181 ++++-
 fsfeatures.c                                  |   6 +-
 help.c                                        |  69 +-
 help.h                                        |   3 +
 ioctl.h                                       |   2 +
 qgroup.c                                      |  23 +-
 .../.lowmem_repairable                        |   0
 .../test.raw.xz                               | Bin 0 -> 159128 bytes
 .../.lowmem_repairable                        |   0
 .../default_case.img                          | Bin 0 -> 3072 bytes
 volumes.c                                     |  11 +-
 volumes.h                                     |   3 +
 48 files changed, 1359 insertions(+), 670 deletions(-)
 create mode 100644
tests/fsck-tests/001-bad-file-extent-bytenr/.lowmem_repairable
 create mode 100644
tests/fsck-tests/038-bad-free-space-cache-inode-mode/test.raw.xz
 create mode 100644
tests/fsck-tests/038-missing-one-file-extent/.lowmem_repairable
 create mode 100644
tests/fsck-tests/038-missing-one-file-extent/default_case.img


Thanks,
Qu


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PULL REQUEST] btrfs-progs updates, the main part
  2019-04-11  5:54 [PULL REQUEST] btrfs-progs updates, the main part Qu Wenruo
@ 2019-04-15 16:27 ` David Sterba
  2019-04-16  0:19   ` Qu Wenruo
  0 siblings, 1 reply; 4+ messages in thread
From: David Sterba @ 2019-04-15 16:27 UTC (permalink / raw)
  To: Qu Wenruo; +Cc: David Sterba, linux-btrfs

On Thu, Apr 11, 2019 at 01:54:44PM +0800, Qu Wenruo wrote:
> Here is my pull request for the btrfs-progs:
> https://github.com/adam900710/btrfs-progs/tree/for_devel
> 
> The basis is the following commit from your devel branch:
> commit a8389337c5a0e7c3fb32ff91d557889c036da73a
> Author: Adam Borowski <kilobyte@angband.pl>
> Date:   Mon Feb 25 19:16:44 2019 +0100
> 
>     btrfs-progs: defrag: open files RO on new enough kernels

Please rebase the branch on top of current devel, with "btrfs-progs:
Remove get_argv0_buf". I had a few patches merged but the branch was not
public so there's some duplication.

> This branch drops the following commit in your devel branch:
> commit 4e8eb31f048f3fe9a68aacb58e4c0714df25b5c4 (david/devel)
> Author: Qu Wenruo <wqu@suse.com>
> Date:   Fri Sep 14 15:49:44 2018 +0800
> 
>     btrfs-progs: Do metadata preallocation as long as we're not
> modifying extent tree

This fixes issue #123, is there another fix? I'll drop the patch from
devel as it fails the test so the revert won't be needed.

> Due to test failure on looping chunk allocation.
> 
> The branch passes all selftests, except misc/035 which is a known problem.
> 
> This pull request include the following features:
> 
> Core change:
> - check --repair
>   * Flush/FUA support to avoid breaking metadata CoW
>       Now btrfs-progs crashing or transaction aborted won't cause
>       new transid error.
> - device scan:
>   * Add the ability to forget a device
> 
> Fixes and Enhancement:
> - generic
>   * Try best copy when reading tree blocks.
>   * Skip unnecessary retry when one tree block copy fails.
>   * Avoid back tree block to populate tree block cache.
> - check
>   * File extents repair no longer relies data in extent tree.
>   * New ability to check and repair free space cache invalid inode mode.
>   * Update backup roots when commit transaction.
> - mkfs:
>   * Enlarge metadata chunk size to follow kernel size.
> - defrag
>   * open file in RO for newer kernel.
> - gitignore
>   * Ignore hidden files.
> - qgroup report
>   * Handle unrecognized sort string.
> - receive
>   * New quite mode.
> - Misc
>   * More cleanup for fs_info <-> root parameters.

Nice, I'll put it to the merge commit once the branch is ready.

> Adam Borowski (2):
>   btrfs-progs: fix kernel version parsing on some versions past 3.0
>   btrfs-progs: defrag: open files RO on new enough kernels
> 
> Anand Jain (3):
>   btrfs-progs: device scan: add new option to forget one or all scanned
>     devices
>   btrfs-progs: dev replace: check for no result before using results
>   btrfs-progs: dev replace: gracefully handle the exclusive operation
>     report
> 
> David Sterba (21):
>   btrfs-progs: device scan: constify path argument
>   btrfs-progs: device scan: update help text
>   btrfs-progs: device scan: update help text
>   btrfs-progs: docs: add scan --forget
>   btrfs-progs: device scan: update error messages
>   btrfs-progs: device: update help texts
>   btrfs-progs: help: add helper for unrecognized option error message
>   btrfs-progs: help: update messages of argc constraint checkers
>   btrfs-progs: help: use unknown command option helper
>   btrfs-progs: help: don't print usage on wrong argument counts
>   btrfs-progs: prop: let parsing helper return error to the caller
>   btrfs-progs: prop: don't print full usage on invalid arguments
>   btrfs-progs: prop: return only common error values
>   btrfs-progs: find-root: use common usage helper for uknown option
>   btrfs-progs: find-root: don't dump usage on wrong argument count
>   btrfs-progs: find-root: use the common help infrastructure
>   btrfs-progs: qgroup: report unknown option
>   btrfs-progs: qgroup: remove unused option handling
>   btrfs-progs: qgroup show: report errors while parsing sort string
>   btrfs-progs: qgroup show: report unrecognized format of sort string
>   btrfs-progs: qgoup: propagate errors from
>     btrfs_qgroup_parse_sort_string

For pull-based workflows there are some things that I'd require, based
on what I do for kernel patches, so let's use this one to set the
expectations:

The excerpt above from the shortlog (and other commits) was not intended
to be pulled, so it should not be in the shortlog.

Please note that all patches need to have signed-off-by by the
committer. This is not true for

- btrfs-progs: fsck-test: enable lowmem repair for case 001
- btrfs-progs: tests: add case for inode lose one file extent

The commits that do revert do not need the 'btrfs-progs:' prefix,
without it it's obvious in the patch subject list that those are
exceptions.

One thing that I edit in almost all commit is the order of tags, briefly
documented at
https://btrfs.wiki.kernel.org/index.php/Developer%27s_FAQ#Ordering

I don't require a signed tag to pull as the amount of pull requests is
not going to be high, review is feasible for me.

One thing that might be new for you is that you'll be the first get
blamed for everything what's in the branch you send to pull, then the
original authors :) It's good to favor quality over quantity.

There's probably more of lower importance, we'll find out along the way.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PULL REQUEST] btrfs-progs updates, the main part
  2019-04-15 16:27 ` David Sterba
@ 2019-04-16  0:19   ` Qu Wenruo
  2019-04-18 18:00     ` David Sterba
  0 siblings, 1 reply; 4+ messages in thread
From: Qu Wenruo @ 2019-04-16  0:19 UTC (permalink / raw)
  To: dsterba, linux-btrfs


[-- Attachment #1.1: Type: text/plain, Size: 4360 bytes --]



On 2019/4/16 上午12:27, David Sterba wrote:
> On Thu, Apr 11, 2019 at 01:54:44PM +0800, Qu Wenruo wrote:
>> Here is my pull request for the btrfs-progs:
>> https://github.com/adam900710/btrfs-progs/tree/for_devel
>>
>> The basis is the following commit from your devel branch:
>> commit a8389337c5a0e7c3fb32ff91d557889c036da73a
>> Author: Adam Borowski <kilobyte@angband.pl>
>> Date:   Mon Feb 25 19:16:44 2019 +0100
>>
>>     btrfs-progs: defrag: open files RO on new enough kernels
> 
> Please rebase the branch on top of current devel, with "btrfs-progs:
> Remove get_argv0_buf". I had a few patches merged but the branch was not
> public so there's some duplication.
> 
>> This branch drops the following commit in your devel branch:
>> commit 4e8eb31f048f3fe9a68aacb58e4c0714df25b5c4 (david/devel)
>> Author: Qu Wenruo <wqu@suse.com>
>> Date:   Fri Sep 14 15:49:44 2018 +0800
>>
>>     btrfs-progs: Do metadata preallocation as long as we're not
>> modifying extent tree
> 
> This fixes issue #123, is there another fix? 

Not yet, the reason is known but new fix is still under development.
Discarding it at least won't cause new problem.


>I'll drop the patch from
> devel as it fails the test so the revert won't be needed.
> 
>> Due to test failure on looping chunk allocation.
>>
>> The branch passes all selftests, except misc/035 which is a known problem.
>>
>> This pull request include the following features:
>>
>> Core change:
>> - check --repair
>>   * Flush/FUA support to avoid breaking metadata CoW
>>       Now btrfs-progs crashing or transaction aborted won't cause
>>       new transid error.
>> - device scan:
>>   * Add the ability to forget a device
>>
>> Fixes and Enhancement:
>> - generic
>>   * Try best copy when reading tree blocks.
>>   * Skip unnecessary retry when one tree block copy fails.
>>   * Avoid back tree block to populate tree block cache.
>> - check
>>   * File extents repair no longer relies data in extent tree.
>>   * New ability to check and repair free space cache invalid inode mode.
>>   * Update backup roots when commit transaction.
>> - mkfs:
>>   * Enlarge metadata chunk size to follow kernel size.
>> - defrag
>>   * open file in RO for newer kernel.
>> - gitignore
>>   * Ignore hidden files.
>> - qgroup report
>>   * Handle unrecognized sort string.
>> - receive
>>   * New quite mode.
>> - Misc
>>   * More cleanup for fs_info <-> root parameters.
> 
> Nice, I'll put it to the merge commit once the branch is ready.
> 
[snip]
>>   btrfs-progs: qgroup show: report errors while parsing sort string
>>   btrfs-progs: qgroup show: report unrecognized format of sort string
>>   btrfs-progs: qgoup: propagate errors from
>>     btrfs_qgroup_parse_sort_string
> 
> For pull-based workflows there are some things that I'd require, based
> on what I do for kernel patches, so let's use this one to set the
> expectations:
> 
> The excerpt above from the shortlog (and other commits) was not intended
> to be pulled, so it should not be in the shortlog.

Got it.

> 
> Please note that all patches need to have signed-off-by by the
> committer. This is not true for

Just one minor question, if I'm the author, no need for another SoB line
right?

> 
> - btrfs-progs: fsck-test: enable lowmem repair for case 001
> - btrfs-progs: tests: add case for inode lose one file extent
> 
> The commits that do revert do not need the 'btrfs-progs:' prefix,
> without it it's obvious in the patch subject list that those are
> exceptions.
> 
> One thing that I edit in almost all commit is the order of tags, briefly
> documented at
> https://btrfs.wiki.kernel.org/index.php/Developer%27s_FAQ#Ordering

Oh, this is indeed different from my understand.

Especially for the reviewed-by and tested-by tags.

I'll definitely reorder those in next update.

Thanks,
Qu
> 
> I don't require a signed tag to pull as the amount of pull requests is
> not going to be high, review is feasible for me.
> 
> One thing that might be new for you is that you'll be the first get
> blamed for everything what's in the branch you send to pull, then the
> original authors :) It's good to favor quality over quantity.
> 
> There's probably more of lower importance, we'll find out along the way.
> 


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PULL REQUEST] btrfs-progs updates, the main part
  2019-04-16  0:19   ` Qu Wenruo
@ 2019-04-18 18:00     ` David Sterba
  0 siblings, 0 replies; 4+ messages in thread
From: David Sterba @ 2019-04-18 18:00 UTC (permalink / raw)
  To: Qu Wenruo; +Cc: dsterba, linux-btrfs

On Tue, Apr 16, 2019 at 08:19:34AM +0800, Qu Wenruo wrote:
> Just one minor question, if I'm the author, no need for another SoB line
> right?

That's right.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-04-18 17:59 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-11  5:54 [PULL REQUEST] btrfs-progs updates, the main part Qu Wenruo
2019-04-15 16:27 ` David Sterba
2019-04-16  0:19   ` Qu Wenruo
2019-04-18 18:00     ` David Sterba

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).