Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1592866
| From | Qu Wenruo <quwenruo@cn.fujitsu.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH 00/17] fs, btrfs refcount conversions |
| Date | 2017-03-06 01:30 +0100 |
| Message-ID | <thOHg-8gd-5@gated-at.bofh.it> (permalink) |
| References | <tgRea-75L-23@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
At 03/03/2017 04:55 PM, Elena Reshetova wrote: > Now when new refcount_t type and API are finally merged > (see include/linux/refcount.h), the following > patches convert various refcounters in the btrfs filesystem from atomic_t > to refcount_t. By doing this we prevent intentional or accidental > underflows or overflows that can led to use-after-free vulnerabilities. > > The below patches are fully independent and can be cherry-picked separately. > Since we convert all kernel subsystems in the same fashion, resulting > in about 300 patches, we have to group them for sending at least in some > fashion to be manageable. Please excuse the long cc list. > > These patches have been tested with xfstests by running btrfs-related tests. > btrfs debug was enabled, warns on refcount errors, too. No output related to > refcount errors produced. However, the following errors were during the run: > * tests btrfs/078, btrfs/114, btrfs/115, no errors anywhere in dmesg, but > process hangs. They all seem to be around qgroup, sometimes error visible > such as qgroup scan failed -4 before it blocks, but not always. -EINTR? That's strange. Any blocked process backtrace? > * test btrfs/104 dmesg has additional error output: > BTRFS warning (device vdc): qgroup 258 reserved space underflow, have: 0, > to free: 4096 Known one, and fixes already sent to mail list while not merged yet: https://patchwork.kernel.org/patch/9592765/ Thanks, Qu > I tried looking at the code on what causes the failure, but could not figure > it out. It doesn't seem to be related to any refcount changes at least IMO. > > The above test failures are hard for me to understand and interpreted, but > they don't seem to relate to refcount conversions. > > Elena Reshetova (17): > fs, btrfs: convert btrfs_bio.refs from atomic_t to refcount_t > fs, btrfs: convert btrfs_transaction.use_count from atomic_t to > refcount_t > fs, btrfs: convert extent_map.refs from atomic_t to refcount_t > fs, btrfs: convert btrfs_ordered_extent.refs from atomic_t to > refcount_t > fs, btrfs: convert btrfs_caching_control.count from atomic_t to > refcount_t > fs, btrfs: convert btrfs_delayed_ref_node.refs from atomic_t to > refcount_t > fs, btrfs: convert btrfs_delayed_node.refs from atomic_t to refcount_t > fs, btrfs: convert btrfs_delayed_item.refs from atomic_t to refcount_t > fs, btrfs: convert btrfs_root.refs from atomic_t to refcount_t > fs, btrfs: convert extent_state.refs from atomic_t to refcount_t > fs, btrfs: convert compressed_bio.pending_bios from atomic_t to > refcount_t > fs, btrfs: convert scrub_recover.refs from atomic_t to refcount_t > fs, btrfs: convert scrub_page.refs from atomic_t to refcount_t > fs, btrfs: convert scrub_block.refs from atomic_t to refcount_t > fs, btrfs: convert scrub_parity.refs from atomic_t to refcount_t > fs, btrfs: convert scrub_ctx.refs from atomic_t to refcount_t > fs, btrfs: convert btrfs_raid_bio.refs from atomic_t to refcount_t > > fs/btrfs/backref.c | 2 +- > fs/btrfs/compression.c | 18 ++++++++--------- > fs/btrfs/ctree.h | 5 +++-- > fs/btrfs/delayed-inode.c | 46 ++++++++++++++++++++++---------------------- > fs/btrfs/delayed-inode.h | 5 +++-- > fs/btrfs/delayed-ref.c | 8 ++++---- > fs/btrfs/delayed-ref.h | 8 +++++--- > fs/btrfs/disk-io.c | 6 +++--- > fs/btrfs/disk-io.h | 4 ++-- > fs/btrfs/extent-tree.c | 20 +++++++++---------- > fs/btrfs/extent_io.c | 18 ++++++++--------- > fs/btrfs/extent_io.h | 3 ++- > fs/btrfs/extent_map.c | 10 +++++----- > fs/btrfs/extent_map.h | 3 ++- > fs/btrfs/ordered-data.c | 20 +++++++++---------- > fs/btrfs/ordered-data.h | 2 +- > fs/btrfs/raid56.c | 19 +++++++++--------- > fs/btrfs/scrub.c | 42 ++++++++++++++++++++-------------------- > fs/btrfs/transaction.c | 20 +++++++++---------- > fs/btrfs/transaction.h | 3 ++- > fs/btrfs/tree-log.c | 2 +- > fs/btrfs/volumes.c | 10 +++++----- > fs/btrfs/volumes.h | 2 +- > include/trace/events/btrfs.h | 4 ++-- > 24 files changed, 143 insertions(+), 137 deletions(-) >
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH 00/17] fs, btrfs refcount conversions Elena Reshetova <elena.reshetova@intel.com> - 2017-03-03 10:00 +0100
[PATCH 15/17] fs, btrfs: convert scrub_parity.refs from atomic_t to refcount_t Elena Reshetova <elena.reshetova@intel.com> - 2017-03-03 10:10 +0100
[PATCH 16/17] fs, btrfs: convert scrub_ctx.refs from atomic_t to refcount_t Elena Reshetova <elena.reshetova@intel.com> - 2017-03-03 10:10 +0100
[PATCH 10/17] fs, btrfs: convert extent_state.refs from atomic_t to refcount_t Elena Reshetova <elena.reshetova@intel.com> - 2017-03-03 10:10 +0100
[PATCH 05/17] fs, btrfs: convert btrfs_caching_control.count from atomic_t to refcount_t Elena Reshetova <elena.reshetova@intel.com> - 2017-03-03 10:10 +0100
[PATCH 03/17] fs, btrfs: convert extent_map.refs from atomic_t to refcount_t Elena Reshetova <elena.reshetova@intel.com> - 2017-03-03 10:10 +0100
[PATCH 04/17] fs, btrfs: convert btrfs_ordered_extent.refs from atomic_t to refcount_t Elena Reshetova <elena.reshetova@intel.com> - 2017-03-03 10:10 +0100
[PATCH 09/17] fs, btrfs: convert btrfs_root.refs from atomic_t to refcount_t Elena Reshetova <elena.reshetova@intel.com> - 2017-03-03 10:10 +0100
[PATCH 17/17] fs, btrfs: convert btrfs_raid_bio.refs from atomic_t to refcount_t Elena Reshetova <elena.reshetova@intel.com> - 2017-03-03 10:10 +0100
[PATCH 08/17] fs, btrfs: convert btrfs_delayed_item.refs from atomic_t to refcount_t Elena Reshetova <elena.reshetova@intel.com> - 2017-03-03 10:30 +0100
[PATCH 14/17] fs, btrfs: convert scrub_block.refs from atomic_t to refcount_t Elena Reshetova <elena.reshetova@intel.com> - 2017-03-03 11:00 +0100
[PATCH 13/17] fs, btrfs: convert scrub_page.refs from atomic_t to refcount_t Elena Reshetova <elena.reshetova@intel.com> - 2017-03-03 11:00 +0100
[PATCH 11/17] fs, btrfs: convert compressed_bio.pending_bios from atomic_t to refcount_t Elena Reshetova <elena.reshetova@intel.com> - 2017-03-03 11:40 +0100
[PATCH 06/17] fs, btrfs: convert btrfs_delayed_ref_node.refs from atomic_t to refcount_t Elena Reshetova <elena.reshetova@intel.com> - 2017-03-03 13:40 +0100
[PATCH 12/17] fs, btrfs: convert scrub_recover.refs from atomic_t to refcount_t Elena Reshetova <elena.reshetova@intel.com> - 2017-03-03 14:00 +0100
[PATCH 07/17] fs, btrfs: convert btrfs_delayed_node.refs from atomic_t to refcount_t Elena Reshetova <elena.reshetova@intel.com> - 2017-03-03 16:40 +0100
Re: [PATCH 00/17] fs, btrfs refcount conversions Qu Wenruo <quwenruo@cn.fujitsu.com> - 2017-03-06 01:30 +0100
Re: [PATCH 00/17] fs, btrfs refcount conversions Qu Wenruo <quwenruo@cn.fujitsu.com> - 2017-03-06 05:10 +0100
Re: [PATCH 00/17] fs, btrfs refcount conversions Qu Wenruo <quwenruo@cn.fujitsu.com> - 2017-03-07 07:30 +0100
RE: [PATCH 00/17] fs, btrfs refcount conversions "Reshetova, Elena" <elena.reshetova@intel.com> - 2017-03-07 09:00 +0100
Re: [PATCH 00/17] fs, btrfs refcount conversions David Sterba <dsterba@suse.cz> - 2017-03-09 16:40 +0100
Re: [PATCH 00/17] fs, btrfs refcount conversions David Sterba <dsterba@suse.cz> - 2017-03-09 17:30 +0100
RE: [PATCH 00/17] fs, btrfs refcount conversions "Reshetova, Elena" <elena.reshetova@intel.com> - 2017-03-13 12:00 +0100
csiph-web