mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-24 21:54:34 -04:00
for-4.17-tag
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEE8rQSAMVO+zA4DBdWxWXV+ddtWDsFAlrDg0UACgkQxWXV+ddt
WDvtOQ//QCk0zH2EcPQnqOW6HqAfkkDc7D9P51sK1izNM3vBEYtbuPlY6wp3xnJr
0hbPjGNU7vMC/4SIwSgEdXyAvlpOr1gm9n+w1GcxpkjLa8l4P+2wt9OX0BSzRUMu
X7LQxqg2zmQibFy4b1MSmDGsO2dxB2eqvVUT/Ir4b56uqkdtValYRWY75APJIZ5l
6w0Ja3HVvgOX3pVwSmadCpfMEonN4JE+mfHaP8RajAlTGQcUPq8If9w4BtEoWQRl
QC7kUCCTmp+isnzH7u4EqEQC6XUqEqeuQH+Bli1pNYTvipHY+9EO1dSxHZoCelgk
M9PpQz8x+N6ZMcMNtJQVifkfN6tAp/acdWBTZtlpqB8nZR4v5bBndS/5TNBMu3/v
JfhMEsIUz5o2mWz9qUneyK80RoTRkL5SfdgOclx2Yd7K1fKuJsUjmdXaT08BzotS
5cxTFZu7EcFJyg4eHemjdyRYr3cUkS19P2uIJle9nj3DAMpCvIyL1c1vn5eB/7MN
3JeRME6AOQcD7sFgVNuYhGVdIBuwHU6kj4mf1WN27YKGdbsaMZsFz7/HH3SsBLOF
E0p7Q25HcHSrAimcmLTifN+gol8Y5m6dT0Pjuf9y9QbWvHwh7oRq7DVQ3L8hJkGz
j64b0jlv43P0QorWvsX6/VJBevWedhe1hZtrBhPFSE0CtJ3Ml4Q=
=wkSk
-----END PGP SIGNATURE-----
Merge tag 'for-4.17-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux
Pull btrfs updates from David Sterba:
"There are a several user visible changes, the rest is mostly invisible
and continues to clean up the whole code base.
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
- one VLA use removal (and one still left)"
* tag 'for-4.17-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (164 commits)
btrfs: lift errors from add_extent_changeset to the callers
Btrfs: print error messages when failing to read trees
btrfs: user proper type for btrfs_mask_flags flags
btrfs: split dev-replace locking helpers for read and write
btrfs: remove stale comments about fs_mutex
btrfs: use RCU in btrfs_show_devname for device list traversal
btrfs: update barrier in should_cow_block
btrfs: use lockdep_assert_held for mutexes
btrfs: use lockdep_assert_held for spinlocks
btrfs: Validate child tree block's level and first key
btrfs: tests/qgroup: Fix wrong tree backref level
Btrfs: fix copy_items() return value when logging an inode
Btrfs: fix fsync after hole punching when using no-holes feature
btrfs: use helper to set ulist aux from a qgroup
Revert "btrfs: qgroups: Retry after commit on getting EDQUOT"
btrfs: qgroup: Update trace events for metadata reservation
btrfs: qgroup: Use root::qgroup_meta_rsv_* to record qgroup meta reserved space
btrfs: delayed-inode: Use new qgroup meta rsv for delayed inode and item
btrfs: qgroup: Use separate meta reservation type for delalloc
btrfs: qgroup: Introduce function to convert META_PREALLOC into META_PERTRANS
...
This commit is contained in:
commit
94514bbe9e
68 changed files with 2075 additions and 1698 deletions
|
|
@ -71,6 +71,12 @@ TRACE_DEFINE_ENUM(COMMIT_TRANS);
|
|||
{ BTRFS_FILE_EXTENT_REG, "REG" }, \
|
||||
{ BTRFS_FILE_EXTENT_PREALLOC, "PREALLOC"})
|
||||
|
||||
#define show_qgroup_rsv_type(type) \
|
||||
__print_symbolic(type, \
|
||||
{ BTRFS_QGROUP_RSV_DATA, "DATA" }, \
|
||||
{ BTRFS_QGROUP_RSV_META_PERTRANS, "META_PERTRANS" }, \
|
||||
{ BTRFS_QGROUP_RSV_META_PREALLOC, "META_PREALLOC" })
|
||||
|
||||
#define BTRFS_GROUP_FLAGS \
|
||||
{ BTRFS_BLOCK_GROUP_DATA, "DATA"}, \
|
||||
{ BTRFS_BLOCK_GROUP_SYSTEM, "SYSTEM"}, \
|
||||
|
|
@ -248,6 +254,41 @@ TRACE_EVENT_CONDITION(btrfs_get_extent,
|
|||
__entry->refs, __entry->compress_type)
|
||||
);
|
||||
|
||||
TRACE_EVENT(btrfs_handle_em_exist,
|
||||
|
||||
TP_PROTO(const struct extent_map *existing, const struct extent_map *map, u64 start, u64 len),
|
||||
|
||||
TP_ARGS(existing, map, start, len),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field( u64, e_start )
|
||||
__field( u64, e_len )
|
||||
__field( u64, map_start )
|
||||
__field( u64, map_len )
|
||||
__field( u64, start )
|
||||
__field( u64, len )
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->e_start = existing->start;
|
||||
__entry->e_len = existing->len;
|
||||
__entry->map_start = map->start;
|
||||
__entry->map_len = map->len;
|
||||
__entry->start = start;
|
||||
__entry->len = len;
|
||||
),
|
||||
|
||||
TP_printk("start=%llu len=%llu "
|
||||
"existing(start=%llu len=%llu) "
|
||||
"em(start=%llu len=%llu)",
|
||||
(unsigned long long)__entry->start,
|
||||
(unsigned long long)__entry->len,
|
||||
(unsigned long long)__entry->e_start,
|
||||
(unsigned long long)__entry->e_len,
|
||||
(unsigned long long)__entry->map_start,
|
||||
(unsigned long long)__entry->map_len)
|
||||
);
|
||||
|
||||
/* file extent item */
|
||||
DECLARE_EVENT_CLASS(btrfs__file_extent_item_regular,
|
||||
|
||||
|
|
@ -1598,28 +1639,52 @@ TRACE_EVENT(qgroup_update_counters,
|
|||
TRACE_EVENT(qgroup_update_reserve,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info, struct btrfs_qgroup *qgroup,
|
||||
s64 diff),
|
||||
s64 diff, int type),
|
||||
|
||||
TP_ARGS(fs_info, qgroup, diff),
|
||||
TP_ARGS(fs_info, qgroup, diff, type),
|
||||
|
||||
TP_STRUCT__entry_btrfs(
|
||||
__field( u64, qgid )
|
||||
__field( u64, cur_reserved )
|
||||
__field( s64, diff )
|
||||
__field( int, type )
|
||||
),
|
||||
|
||||
TP_fast_assign_btrfs(fs_info,
|
||||
__entry->qgid = qgroup->qgroupid;
|
||||
__entry->cur_reserved = qgroup->reserved;
|
||||
__entry->cur_reserved = qgroup->rsv.values[type];
|
||||
__entry->diff = diff;
|
||||
),
|
||||
|
||||
TP_printk_btrfs("qgid=%llu cur_reserved=%llu diff=%lld",
|
||||
__entry->qgid, __entry->cur_reserved, __entry->diff)
|
||||
TP_printk_btrfs("qgid=%llu type=%s cur_reserved=%llu diff=%lld",
|
||||
__entry->qgid, show_qgroup_rsv_type(__entry->type),
|
||||
__entry->cur_reserved, __entry->diff)
|
||||
);
|
||||
|
||||
TRACE_EVENT(qgroup_meta_reserve,
|
||||
|
||||
TP_PROTO(struct btrfs_root *root, s64 diff, int type),
|
||||
|
||||
TP_ARGS(root, diff, type),
|
||||
|
||||
TP_STRUCT__entry_btrfs(
|
||||
__field( u64, refroot )
|
||||
__field( s64, diff )
|
||||
__field( int, type )
|
||||
),
|
||||
|
||||
TP_fast_assign_btrfs(root->fs_info,
|
||||
__entry->refroot = root->objectid;
|
||||
__entry->diff = diff;
|
||||
),
|
||||
|
||||
TP_printk_btrfs("refroot=%llu(%s) type=%s diff=%lld",
|
||||
show_root_type(__entry->refroot),
|
||||
show_qgroup_rsv_type(__entry->type), __entry->diff)
|
||||
);
|
||||
|
||||
TRACE_EVENT(qgroup_meta_convert,
|
||||
|
||||
TP_PROTO(struct btrfs_root *root, s64 diff),
|
||||
|
||||
TP_ARGS(root, diff),
|
||||
|
|
@ -1627,6 +1692,7 @@ TRACE_EVENT(qgroup_meta_reserve,
|
|||
TP_STRUCT__entry_btrfs(
|
||||
__field( u64, refroot )
|
||||
__field( s64, diff )
|
||||
__field( int, type )
|
||||
),
|
||||
|
||||
TP_fast_assign_btrfs(root->fs_info,
|
||||
|
|
@ -1634,8 +1700,36 @@ TRACE_EVENT(qgroup_meta_reserve,
|
|||
__entry->diff = diff;
|
||||
),
|
||||
|
||||
TP_printk_btrfs("refroot=%llu(%s) diff=%lld",
|
||||
show_root_type(__entry->refroot), __entry->diff)
|
||||
TP_printk_btrfs("refroot=%llu(%s) type=%s->%s diff=%lld",
|
||||
show_root_type(__entry->refroot),
|
||||
show_qgroup_rsv_type(BTRFS_QGROUP_RSV_META_PREALLOC),
|
||||
show_qgroup_rsv_type(BTRFS_QGROUP_RSV_META_PERTRANS),
|
||||
__entry->diff)
|
||||
);
|
||||
|
||||
TRACE_EVENT(qgroup_meta_free_all_pertrans,
|
||||
|
||||
TP_PROTO(struct btrfs_root *root),
|
||||
|
||||
TP_ARGS(root),
|
||||
|
||||
TP_STRUCT__entry_btrfs(
|
||||
__field( u64, refroot )
|
||||
__field( s64, diff )
|
||||
__field( int, type )
|
||||
),
|
||||
|
||||
TP_fast_assign_btrfs(root->fs_info,
|
||||
__entry->refroot = root->objectid;
|
||||
spin_lock(&root->qgroup_meta_rsv_lock);
|
||||
__entry->diff = -(s64)root->qgroup_meta_rsv_pertrans;
|
||||
spin_unlock(&root->qgroup_meta_rsv_lock);
|
||||
__entry->type = BTRFS_QGROUP_RSV_META_PERTRANS;
|
||||
),
|
||||
|
||||
TP_printk_btrfs("refroot=%llu(%s) type=%s diff=%lld",
|
||||
show_root_type(__entry->refroot),
|
||||
show_qgroup_rsv_type(__entry->type), __entry->diff)
|
||||
);
|
||||
|
||||
DECLARE_EVENT_CLASS(btrfs__prelim_ref,
|
||||
|
|
|
|||
Loading…
Reference in a new issue