Error handling patchset v6
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest99 patches 15 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/99 | btrfs: Add btrfs_panic()fs/ fs/ | +61 | 5 replies | |
| 2/99 | btrfs: Catch locking failures in {set,clear,convert}_extent_bitfs/ | +30 | 0 replies | |
| 3/99 | btrfs: Panic on bad rbtree operationsfs/ fs/ | +39 | 2 replies | |
| 4/99 | btrfs: Simplify btrfs_insert_rootfs/ | +3 | 0 replies | |
| 5/99 | btrfs: Remove set bits return from clear_extent_bitfs/ | +5 | 0 replies | |
| 6/99 | btrfs: Add extent_state alloc/free tracingfs/ include/ | +46 | 0 replies | |
| 7/99 | btrfs: Use mempools for extent_state structuresfs/ | +51 | 4 replies | |
| 8/99 | btrfs: clear_extent_bit should return void with __GFP_WAIT setfs/ fs/ | +88 | 0 replies | |
| 9/99 | btrfs: unlock_extent can return voidfs/ fs/ | +3 | 0 replies | |
| 10/99 | btrfs: Split unlock_extent_cached into sleeping and atomic versionsfs/ fs/ | +20 | 0 replies | |
| 11/99 | btrfs: unlock_extent can drop gfp_t argumentfs/ fs/ fs/ +6 more | +57 | 0 replies | |
| 12/99 | btrfs: clear_extent_dirty can drop gfp_t argumentfs/ fs/ fs/ +1 more | +5 | 0 replies | |
| 13/99 | btrfs: clear_extent_uptodate can drop gfp_t argumetnfs/ | +4 | 2 replies | |
| 14/99 | btrfs: clear_extent_bits can drop gfp_t argumetnfs/ fs/ fs/ +6 more | +13 | 0 replies | |
| 15/99 | btrfs: try_lock_extent can drop gfp_t argumetnfs/ fs/ fs/ | +9 | 0 replies | |
| 16/99 | btrfs: clear_extent_bit can drop gfp_t argumentfs/ fs/ fs/ +3 more | +16 | 0 replies | |
| 17/99 | btrfs: set_extent_bit: split exclusive mode outfs/ fs/ fs/ | +32 | 0 replies | |
| 18/99 | btrfs: set_extent_bit should return void with __GFP_WAIT setfs/ fs/ fs/ +5 more | +89 | 0 replies | |
| 19/99 | btrfs: lock_extent can drop gfp_t argumentfs/ fs/ fs/ +6 more | +36 | 0 replies | |
| 20/99 | btrfs: set_extent_dirty can drop gfp_t argumentfs/ fs/ fs/ | +7 | 0 replies | |
| 21/99 | btrfs: set_extent_bits can drop gfp_t argumentfs/ fs/ fs/ +3 more | +11 | 0 replies | |
| 22/99 | btrfs: set_extent_delalloc can drop gfp_t argumentfs/ fs/ fs/ | +4 | 0 replies | |
| 23/99 | btrfs: set_extent_new can drop gfp_t argumentfs/ fs/ fs/ | +4 | 0 replies | |
| 24/99 | btrfs: set_extent_uptodate can drop gfp_t argumentfs/ fs/ fs/ | +11 | 0 replies | |
| 25/99 | btrfs: set_extent_bit can drop gfp_t argumentfs/ fs/ fs/ | +19 | 0 replies | |
| 26/99 | btrfs: set_extent_buffer_uptodate should return voidfs/ fs/ | +3 | 0 replies | |
| 27/99 | btrfs: set_extent_bit should return -ENOMEM on GFP_ATOMIC failuresfs/ | +22 | 0 replies | |
| 28/99 | btrfs: clear_extent_bit error push-upfs/ | +10 | 0 replies | |
| 29/99 | btrfs: convert_extent_bit should return void with __GFP_WAIT setfs/ fs/ | +16 | 0 replies | |
| 30/99 | btrfs: pin_down_extent should return voidfs/ | +3 | 0 replies | |
| 31/99 | btrfs: btrfs_pin_extent error push-upfs/ fs/ fs/ | +29 | 0 replies | |
| 32/99 | btrfs: btrfs_drop_snapshot should return intfs/ fs/ fs/ +1 more | +13 | 0 replies | |
| 33/99 | btrfs: btrfs_start_transaction non-looped error push-upfs/ fs/ fs/ +1 more | +15 | 0 replies | |
| 34/99 | btrfs: find_and_setup_root error push-upfs/ | +6 | 0 replies | |
| 35/99 | btrfs: btrfs_update_root error push-upfs/ fs/ | +7 | 0 replies | |
| 36/99 | btrfs: set_range_writeback should return voidfs/ | +5 | 0 replies | |
| 37/99 | btrfs: wait_on_state should return voidfs/ | +0 | 0 replies | |
| 38/99 | btrfs: wait_extent_bit should return voidfs/ fs/ | +2 | 0 replies | |
| 39/99 | btrfs: __unlock_for_delalloc should return voidfs/ | +4 | 0 replies | |
| 40/99 | btrfs: check_page_uptodate should return voidfs/ | +1 | 0 replies | |
| 41/99 | btrfs: check_page_locked should return voidfs/ | +1 | 0 replies | |
| 42/99 | btrfs: check_page_writeback should return voidfs/ | +2 | 0 replies | |
| 43/99 | btrfs: clear_extent_buffer_dirty should return voidfs/ fs/ | +2 | 0 replies | |
| 44/99 | btrfs: btrfs_cleanup_fs_uuids should return voidfs/ fs/ | +2 | 0 replies | |
| 45/99 | btrfs: run_scheduled_bios should return voidfs/ | +1 | 0 replies | |
| 46/99 | btrfs: btrfs_close_extra_devices should return voidfs/ fs/ | +2 | 0 replies | |
| 47/99 | btrfs: schedule_bio should return voidfs/ | +1 | 0 replies | |
| 48/99 | btrfs: fill_device_from_item should return voidfs/ | +1 | 0 replies | |
| 49/99 | btrfs: btrfs_queue_worker should return voidfs/ fs/ | +5 | 0 replies | |
| 50/99 | btrfs: run_ordered_completions should return voidfs/ | +2 | 0 replies | |
| 51/99 | btrfs: btrfs_stop_workers should return voidfs/ fs/ | +2 | 0 replies | |
| 52/99 | btrfs: btrfs_requeue_work should return voidfs/ fs/ | +3 | 0 replies | |
| 53/99 | btrfs: btrfs_end_log_trans should return voidfs/ fs/ | +2 | 0 replies | |
| 54/99 | btrfs: wait_for_writer should return voidfs/ | +2 | 0 replies | |
| 55/99 | btrfs: btrfs_init_compress should return voidfs/ fs/ fs/ | +3 | 0 replies | |
| 56/99 | btrfs: btrfs_invalidate_inodes should return voidfs/ fs/ | +2 | 0 replies | |
| 57/99 | btrfs: __setup_root should return voidfs/ | +4 | 0 replies | |
| 58/99 | btrfs: btrfs_destroy_delalloc_inodes should return voidfs/ | +2 | 0 replies | |
| 59/99 | btrfs: btrfs_prepare_extent_commit should return voidfs/ fs/ | +1 | 0 replies | |
| 60/99 | btrfs: btrfs_set_block_group_rw should return voidfs/ fs/ | +1 | 0 replies | |
| 61/99 | btrfs: setup_inline_extent_backref should return voidfs/ | +11 | 0 replies | |
| 62/99 | btrfs: btrfs_run_defrag_inodes should return voidfs/ fs/ | +2 | 0 replies | |
| 63/99 | btrfs: Simplify btrfs_submit_bio_hookfs/ | +4 | 0 replies | |
| 64/99 | btrfs: Factor out tree->ops->merge_bio_hook callfs/ fs/ | +17 | 0 replies | |
| 65/99 | btrfs: ->submit_bio_hook error push-upfs/ fs/ fs/ | +28 | 2 replies | |
| 66/99 | btrfs: __add_reloc_root error push-upfs/ | +16 | 0 replies | |
| 67/99 | btrfs: fixup_low_keys should return voidfs/ | +11 | 0 replies | |
| 68/99 | btrfs: setup_items_for_insert should return voidfs/ fs/ fs/ | +16 | 0 replies | |
| 69/99 | btrfs: del_ptr should return voidfs/ | +13 | 0 replies | |
| 70/99 | btrfs: insert_ptr should return voidfs/ | +14 | 0 replies | |
| 71/99 | btrfs: add_delayed_ref_head should return voidfs/ | +10 | 0 replies | |
| 72/99 | btrfs: add_delayed_tree_ref should return voidfs/ | +6 | 0 replies | |
| 73/99 | btrfs: add_delayed_data_ref should return voidfs/ | +7 | 0 replies | |
| 74/99 | btrfs: Fix kfree of member instead of structurefs/ | +3 | 0 replies | |
| 75/99 | btrfs: Use mempools for delayed refsfs/ fs/ fs/ | +107 | 0 replies | |
| 76/99 | btrfs: Delayed ref mempool functions should return voidfs/ fs/ fs/ +2 more | +63 | 0 replies | |
| 77/99 | btrfs: btrfs_inc_extent_ref void return prepfs/ fs/ fs/ +1 more | +22 | 0 replies | |
| 78/99 | btrfs: btrfs_free_extent void return prepfs/ fs/ fs/ +1 more | +25 | 0 replies | |
| 79/99 | btrfs: __btrfs_mod_refs process_func should return voidfs/ fs/ | +18 | 0 replies | |
| 80/99 | btrfs: __btrfs_mod_ref should return voidfs/ fs/ fs/ | +29 | 0 replies | |
| 81/99 | btrfs: clean_tree_block should return voidfs/ fs/ | +2 | 0 replies | |
| 82/99 | btrfs: btrfs_truncate_item should return voidfs/ fs/ fs/ +4 more | +17 | 0 replies | |
| 83/99 | btrfs: btrfs_extend_item should return voidfs/ fs/ fs/ +4 more | +16 | 0 replies | |
| 84/99 | btrfs: end_compressed_writeback should return voidfs/ | +2 | 0 replies | |
| 85/99 | btrfs: copy_for_split should return voidfs/ | +8 | 0 replies | |
| 86/99 | btrfs: update_inline_extent_backref should return voidfs/ | +11 | 0 replies | |
| 87/99 | btrfs: btrfs_put_ordered_extent should return voidfs/ fs/ | +2 | 0 replies | |
| 88/99 | btrfs: __btrfs_remove_ordered_extent should return voidfs/ fs/ | +6 | 0 replies | |
| 89/99 | btrfs: btrfs_wait_ordered_extents should return voidfs/ fs/ fs/ | +5 | 0 replies | |
| 90/99 | btrfs: btrfs_wait_ordered_range should return voidfs/ fs/ | +2 | 0 replies | |
| 91/99 | btrfs: btrfs_run_ordered_operations should return voidfs/ fs/ | +2 | 0 replies | |
| 92/99 | btrfs: btrfs_add_ordered_operation should return voidfs/ fs/ | +7 | 0 replies | |
| 93/99 | btrfs: btrfs_add_ordered_sum should return voidfs/ fs/ | +6 | 0 replies | |
| 94/99 | btrfs: btrfs_free_fs_root should return voidfs/ fs/ | +2 | 0 replies | |
| 95/99 | btrfs: del_fs_roots should return voidfs/ | +1 | 0 replies | |
| 96/99 | btrfs: btrfs_destroy_ordered_operations should return voidfs/ | +2 | 0 replies | |
| 97/99 | btrfs: btrfs_destroy_ordered_extents should return voidfs/ | +2 | 0 replies | |
| 98/99 | btrfs: btrfs_destroy_pending_snapshots should return voidfs/ | +2 | 0 replies | |
| 99/99 | btrfs: add_excluded_extent should return voidfs/ | +6 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [patch 00/99] Error handling patchset v6
Here's my current error handling patchset, against Chris's current for-linus branch.
As before, it's almost all in preparation for actual error handling. After a chat with Chris last week about some of the bits I thought might be contentious, I went ahead with the next step and converted struct extent_state allocations to use a mempool in front of the slab cache it was using already. This means that non-atomic callers can't catch an -ENOMEM and that means that non-atomic version of {set,clear,convert}_extent_bit can return void. This changes the previous patch set quite a bit since the {set,clear,convert}_extent_bit error push-up patches are now entirely obsolete.
The run down:
- extent_state allocations -> mempool
- delayed_ref allocations -> mempool
- a ton of int -> void changes
- add btrfs_panic
- a few cleanups where I ran into them
-Jeff