| Age | Commit message (Expand) | Author | Files | Lines |
| 2021-04-08 | block: refactor blk_drop_partitions | Christoph Hellwig | 1 | -1/+0 |
| 2021-04-06 | block: refactor the bounce buffering code | Christoph Hellwig | 1 | -4/+12 |
| 2021-04-06 | block: remove BLK_BOUNCE_ISA support | Christoph Hellwig | 1 | -5/+0 |
| 2021-02-10 | block: introduce blk_queue_clear_zone_settings() | Damien Le Moal | 1 | -0/+2 |
| 2021-02-08 | block: use bi_max_vecs to find the bvec pool | Christoph Hellwig | 1 | -3/+3 |
| 2021-02-08 | block: reuse BIO_INLINE_VECS for integrity bvecs | Christoph Hellwig | 1 | -0/+1 |
| 2021-01-24 | block: move three bvec helpers declaration into private helper | Ming Lei | 1 | -0/+4 |
| 2021-01-24 | block: use an xarray for disk->part_tbl | Christoph Hellwig | 1 | -1/+0 |
| 2021-01-24 | blk-mq: use ->bi_bdev for I/O accounting | Christoph Hellwig | 1 | -2/+0 |
| 2021-01-24 | block: store a block_device pointer in struct bio | Christoph Hellwig | 1 | -2/+0 |
| 2020-12-16 | Merge tag 'for-5.11/drivers-2020-12-14' of git://git.kernel.dk/linux-block | Linus Torvalds | 1 | -12/+0 |
| 2020-12-07 | Revert "block: Fix a lockdep complaint triggered by request queue flushing" | Ming Lei | 1 | -1/+0 |
| 2020-12-01 | block: merge struct block_device and struct hd_struct | Christoph Hellwig | 1 | -1/+1 |
| 2020-12-01 | block: pass a block_device to blk_alloc_devt | Christoph Hellwig | 1 | -1/+1 |
| 2020-12-01 | block: switch partition lookup to use struct block_device | Christoph Hellwig | 1 | -2/+2 |
| 2020-12-01 | block: allocate struct hd_struct as part of struct bdev_inode | Christoph Hellwig | 1 | -21/+0 |
| 2020-12-01 | block: move the partition_meta_info to struct block_device | Christoph Hellwig | 1 | -1/+0 |
| 2020-12-01 | block: move disk stat accounting to struct block_device | Christoph Hellwig | 1 | -1/+0 |
| 2020-12-01 | block: remove the nr_sects field in struct hd_struct | Christoph Hellwig | 1 | -53/+0 |
| 2020-12-01 | block: simplify bdev/disk lookup in blkdev_get | Christoph Hellwig | 1 | -1/+1 |
| 2020-12-01 | block: move blk_rq_bio_prep() to linux/blk-mq.h | Chaitanya Kulkarni | 1 | -12/+0 |
| 2020-10-06 | block: move blk_mq_sched_try_merge to blk-merge.c | Christoph Hellwig | 1 | -19/+0 |
| 2020-10-06 | block: remove the unused blk_integrity_merge_bio export | Christoph Hellwig | 1 | -0/+7 |
| 2020-10-06 | block: remove the unused blk_integrity_merge_rq export | Christoph Hellwig | 1 | -0/+8 |
| 2020-09-01 | block: remove the disk argument to delete_partition | Christoph Hellwig | 1 | -1/+1 |
| 2020-09-01 | block: Add a new helper to attempt to merge a bio | Baolin Wang | 1 | -6/+15 |
| 2020-09-01 | block: Move blk_mq_bio_list_merge() into blk-merge.c | Baolin Wang | 1 | -0/+2 |
| 2020-07-17 | block: improve discard bio alignment in __blkdev_issue_discard() | Coly Li | 1 | -0/+14 |
| 2020-07-08 | blk-mq: centralise related handling into blk_mq_get_driver_tag | Ming Lei | 1 | -5/+0 |
| 2020-07-01 | Revert "blk-mq: put driver tag when this request is completed" | Jens Axboe | 1 | -0/+5 |
| 2020-07-01 | block: move ->make_request_fn to struct block_device_operations | Christoph Hellwig | 1 | -2/+0 |
| 2020-07-01 | block: remove the request_queue argument from blk_queue_split | Christoph Hellwig | 1 | -2/+1 |
| 2020-06-30 | blk-mq: centralise related handling into blk_mq_get_driver_tag | Ming Lei | 1 | -5/+0 |
| 2020-06-29 | blk-cgroup: remove blkcg_bio_issue_check | Christoph Hellwig | 1 | -0/+2 |
| 2020-06-24 | block: create the request_queue debugfs_dir on registration | Luis Chamberlain | 1 | -2/+0 |
| 2020-06-24 | blk-mq: move failure injection out of blk_mq_complete_request | Christoph Hellwig | 1 | -9/+0 |
| 2020-06-04 | block: nr_sects_write(): Disable preemption on seqcount write | Ahmed S. Darwish | 1 | -0/+2 |
| 2020-05-29 | blk-throttle: remove blk_throtl_drain | Guoqing Jiang | 1 | -2/+0 |
| 2020-05-27 | block: add a blk_account_io_merge_bio helper | Konstantin Khlebnikov | 1 | -1/+1 |
| 2020-05-27 | block: always use a percpu variable for disk stats | Christoph Hellwig | 1 | -1/+1 |
| 2020-05-27 | block: move update_io_ticks to blk-core.c | Christoph Hellwig | 1 | -1/+0 |
| 2020-05-19 | block: Remove unused flush_queue_delayed in struct blk_flush_queue | Baolin Wang | 1 | -1/+0 |
| 2020-05-19 | block: merge part_{inc,dev}_in_flight into their only callers | Christoph Hellwig | 1 | -4/+0 |
| 2020-05-19 | block: mark blk_account_io_completion static | Christoph Hellwig | 1 | -1/+0 |
| 2020-05-19 | blk-mq: allow blk_mq_make_request to consume the q_usage_counter reference | Christoph Hellwig | 1 | -11/+0 |
| 2020-05-14 | block: Inline encryption support for blk-mq | Satya Tangirala | 1 | -0/+2 |
| 2020-05-12 | block: rename __bio_add_pc_page to bio_add_hw_page | Christoph Hellwig | 1 | -2/+2 |
| 2020-05-12 | block: don't hold part0's refcount in IO path | Ming Lei | 1 | -7/+6 |
| 2020-04-25 | block: remove create_io_context | Christoph Hellwig | 1 | -20/+0 |
| 2020-04-20 | block: remove hd_struct_kill | Christoph Hellwig | 1 | -5/+0 |
| 2020-04-20 | block: cleanup hd_struct freeing | Christoph Hellwig | 1 | -9/+1 |
| 2020-04-20 | block: pass a hd_struct to delete_partition | Christoph Hellwig | 1 | -1/+1 |
| 2020-04-20 | block: refactor blkpg_ioctl | Christoph Hellwig | 1 | -3/+5 |
| 2020-03-27 | block: move bio_map_* to blk-map.c | Christoph Hellwig | 1 | -0/+4 |
| 2020-03-27 | block: simplify queue allocation | Christoph Hellwig | 1 | -0/+2 |
| 2020-03-25 | block: move the part_stat* helpers from genhd.h to a new header | Christoph Hellwig | 1 | -0/+1 |
| 2020-03-25 | block: move block layer internals out of include/linux/genhd.h | Christoph Hellwig | 1 | -0/+116 |
| 2020-03-24 | block: move sysfs methods shared by disks and partitions to genhd.c | Christoph Hellwig | 1 | -0/+11 |
| 2020-03-12 | block: remove unneeded argument from blk_alloc_flush_queue | Guoqing Jiang | 1 | -2/+2 |
| 2019-12-20 | block: Fix a lockdep complaint triggered by request queue flushing | Bart Van Assche | 1 | -0/+1 |
| 2019-12-05 | block: fix memleak of bio integrity data | Justin Tee | 1 | -0/+4 |
| 2019-10-10 | block: account statistics for passthrough requests | Logan Gunthorpe | 1 | -5/+2 |
| 2019-09-27 | block: fix null pointer dereference in blk_mq_rq_timed_out() | Yufen Yu | 1 | -0/+7 |
| 2019-09-26 | blk-mq: move lockdep_assert_held() into elevator_exit | Ming Lei | 1 | -0/+2 |
| 2019-09-05 | block: Change elevator_init_mq() to always succeed | Damien Le Moal | 1 | -1/+1 |
| 2019-08-27 | block: split .sysfs_lock into two locks | Ming Lei | 1 | -1/+1 |
| 2019-06-20 | block: mark blk_rq_bio_prep as inline | Christoph Hellwig | 1 | -1/+12 |
| 2019-06-20 | block: simplify blk_recalc_rq_segments | Christoph Hellwig | 1 | -1/+1 |
| 2019-06-20 | block: remove the bi_phys_segments field in struct bio | Christoph Hellwig | 1 | -11/+12 |
| 2019-06-06 | block: free sched's request pool in blk_cleanup_queue | Ming Lei | 1 | -1/+9 |
| 2019-05-29 | block: move blk_exit_queue into __blk_release_queue | Ming Lei | 1 | -1/+0 |
| 2019-04-01 | block: pass page to xen_biovec_phys_mergeable | Ming Lei | 1 | -1/+1 |
| 2019-02-01 | blk-mq: save queue mapping result into ctx directly | Jianchao Wang | 1 | -1/+1 |
| 2018-11-26 | block: sum requests in the plug structure | Jens Axboe | 1 | -2/+0 |
| 2018-11-19 | block: Remove bio->bi_ioc | Damien Le Moal | 1 | -16/+0 |
| 2018-11-18 | Merge tag 'v4.20-rc3' into for-4.21/block | Jens Axboe | 1 | -1/+11 |
| 2018-11-15 | block: remove queue_lockdep_assert_held | Christoph Hellwig | 1 | -13/+0 |
| 2018-11-15 | block: use atomic bitops for ->queue_flags | Christoph Hellwig | 1 | -56/+0 |
| 2018-11-15 | block: remove deadline __deadline manipulation helpers | Christoph Hellwig | 1 | -35/+0 |
| 2018-11-09 | block: remove req->timeout_list | Christoph Hellwig | 1 | -2/+0 |
| 2018-11-09 | block: make sure discard bio is aligned with logical block size | Ming Lei | 1 | -0/+10 |
| 2018-11-07 | blk-mq: pass in request/bio flags to queue mapping | Jens Axboe | 1 | -3/+3 |
| 2018-11-07 | block: kill request slab cache | Jens Axboe | 1 | -1/+0 |
| 2018-11-07 | block: remove request_list code | Jens Axboe | 1 | -3/+0 |
| 2018-11-07 | block: kill legacy parts of timeout handling | Jens Axboe | 1 | -1/+0 |
| 2018-11-07 | block: remove dead elevator code | Jens Axboe | 1 | -51/+0 |
| 2018-11-07 | block: remove non mq parts from the flush code | Jens Axboe | 1 | -3/+1 |
| 2018-11-07 | block: respect virtual boundary mask in bvecs | Johannes Thumshirn | 1 | -1/+1 |
| 2018-10-25 | block: Introduce blk_revalidate_disk_zones() | Damien Le Moal | 1 | -0/+6 |
| 2018-10-25 | block: Improve zone reset execution | Damien Le Moal | 1 | -0/+2 |
| 2018-10-13 | blk-mq: change gfp flags to GFP_NOIO in blk_mq_realloc_hw_ctxs | Jianchao Wang | 1 | -1/+1 |
| 2018-09-26 | block: remove ARCH_BIOVEC_PHYS_MERGEABLE | Christoph Hellwig | 1 | -5/+2 |
| 2018-09-24 | block: remove bvec_to_phys | Christoph Hellwig | 1 | -2/+2 |
| 2018-09-24 | block: merge BIOVEC_SEG_BOUNDARY into biovec_phys_mergeable | Christoph Hellwig | 1 | -3/+9 |
| 2018-09-24 | block: simplify BIOVEC_PHYS_MERGEABLE | Christoph Hellwig | 1 | -0/+14 |
| 2018-09-24 | block: move req_gap_back_merge to blk.h | Christoph Hellwig | 1 | -0/+19 |
| 2018-09-24 | block: move integrity_req_gap_{back,front}_merge to blk.h | Christoph Hellwig | 1 | -2/+33 |
| 2018-08-21 | blk-mq: init hctx sched after update ctx and hctx mapping | Jianchao Wang | 1 | -0/+2 |
| 2018-08-16 | block: change return type to bool | Chengguang Xu | 1 | -1/+1 |
| 2018-08-09 | block: Introduce blk_exit_queue() | Bart Van Assche | 1 | -0/+1 |
| 2018-07-09 | block: introduce blk-iolatency io controller | Josef Bacik | 1 | -0/+6 |
| 2018-06-01 | block: split the blk-mq case from elevator_init | Christoph Hellwig | 1 | -0/+1 |
| 2018-06-01 | block: remove the always unused name argument to elevator_init | Christoph Hellwig | 1 | -1/+1 |
| 2018-06-01 | block: unexport elevator_init/exit | Christoph Hellwig | 1 | -0/+2 |
| 2018-05-09 | block: consolidate struct request timestamp fields | Omar Sandoval | 1 | -1/+1 |
| 2018-03-08 | block: Move the queue_flag_*() functions from a public into a private header ... | Bart Van Assche | 1 | -0/+69 |
| 2018-01-29 | Merge branch 'for-4.16/block' of git://git.kernel.dk/linux-block | Linus Torvalds | 1 | -19/+27 |
| 2018-01-18 | block: Unexport elv_register_queue() and elv_unregister_queue() | Bart Van Assche | 1 | -0/+3 |
| 2018-01-10 | block: convert REQ_ATOM_COMPLETE to stealing rq->__deadline bit | Jens Axboe | 1 | -10/+9 |
| 2018-01-10 | block: add accessors for setting/querying request deadline | Jens Axboe | 1 | -0/+15 |
| 2018-01-10 | block: remove REQ_ATOM_POLL_SLEPT | Jens Axboe | 1 | -2/+0 |
| 2018-01-09 | blk-mq: remove REQ_ATOM_STARTED | Tejun Heo | 1 | -1/+0 |
| 2018-01-09 | blk-mq: replace timeout synchronization with a RCU and generation based scheme | Tejun Heo | 1 | -6/+0 |
| 2018-01-05 | block: drain queue before waiting for q_usage_counter becoming zero | Ming Lei | 1 | -0/+2 |
| 2017-11-14 | Merge branch 'for-4.15/block' of git://git.kernel.dk/linux-block | Linus Torvalds | 1 | -39/+7 |
| 2017-11-02 | License cleanup: add SPDX GPL-2.0 license identifier to files with no license | Greg Kroah-Hartman | 1 | -0/+1 |
| 2017-10-04 | blk-mq: document the need to have STARTED and COMPLETED share a byte | Jens Axboe | 1 | -0/+7 |
| 2017-10-03 | block: move __elv_next_request to blk-core.c | Christoph Hellwig | 1 | -39/+0 |
| 2017-08-29 | block: Make blk_dequeue_request() static | Damien Le Moal | 1 | -1/+0 |
| 2017-08-23 | block: add a __disk_get_part helper | Christoph Hellwig | 1 | -0/+2 |
| 2017-07-03 | bio-integrity: stop abusing bi_end_io | Christoph Hellwig | 1 | -0/+11 |
| 2017-06-27 | block: move bounce declarations to block/blk.h | Christoph Hellwig | 1 | -0/+13 |
| 2017-06-20 | block: Document what queue type each function is intended for | Bart Van Assche | 1 | -0/+2 |
| 2017-06-01 | block: Avoid that blk_exit_rl() triggers a use-after-free | Bart Van Assche | 1 | -1/+1 |
| 2017-04-19 | block: Export blk_init_request_from_bio() | Bart Van Assche | 1 | -1/+0 |
| 2017-04-19 | block: make __blk_end_bidi_request private | Christoph Hellwig | 1 | -2/+0 |
| 2017-03-28 | blk-throttle: add a mechanism to estimate IO latency | Shaohua Li | 1 | -0/+2 |
| 2017-03-28 | blk-throttle: add a simple idle detection | Shaohua Li | 1 | -0/+3 |
| 2017-03-28 | blk-throttle: choose a small throtl_slice for SSD | Shaohua Li | 1 | -0/+2 |
| 2017-03-28 | blk-throttle: make throtl_slice tunable | Shaohua Li | 1 | -0/+5 |
| 2017-02-08 | block: optionally merge discontiguous discard bios into a single request | Christoph Hellwig | 1 | -0/+2 |
| 2017-02-08 | block: enumify ELEVATOR_*_MERGE | Christoph Hellwig | 1 | -1/+1 |
| 2017-02-08 | block: move req_set_nomerge to blk.h | Christoph Hellwig | 1 | -0/+7 |
| 2017-02-03 | blk-merge: return the merged request | Jens Axboe | 1 | -2/+2 |
| 2017-02-02 | block: use same block debugfs directory for blk-mq and blktrace | Omar Sandoval | 1 | -0/+4 |
| 2017-01-31 | block: introduce blk_rq_is_passthrough | Christoph Hellwig | 1 | -1/+1 |
| 2017-01-17 | block: move rq_ioc() to blk.h | Jens Axboe | 1 | -0/+16 |
| 2017-01-17 | block: move existing elevator ops to union | Jens Axboe | 1 | -5/+5 |
| 2016-11-17 | blk-mq: implement hybrid poll mode for sync O_DIRECT | Jens Axboe | 1 | -0/+1 |
| 2016-10-28 | block: split out request-only flags into a new namespace | Christoph Hellwig | 1 | -2/+2 |
| 2016-09-15 | blk-mq: remove ->map_queue | Christoph Hellwig | 1 | -8/+3 |
| 2016-07-20 | block: simplify and export blk_rq_append_bio | Christoph Hellwig | 1 | -2/+0 |
| 2015-12-22 | block: defer timeouts to a workqueue | Christoph Hellwig | 1 | -1/+1 |
| 2015-11-19 | block: protect rw_page against device teardown | Dan Williams | 1 | -2/+0 |
| 2015-11-04 | Merge branch 'for-4.4/integrity' of git://git.kernel.dk/linux-block | Linus Torvalds | 1 | -0/+22 |
| 2015-10-21 | block: fix plug list flushing for nomerge queues | Jeff Moyer | 1 | -0/+1 |
| 2015-10-21 | block: blk_flush_integrity() for bio-based drivers | Dan Williams | 1 | -0/+8 |
| 2015-10-21 | block: generic request_queue reference counting | Dan Williams | 1 | -0/+14 |
| 2015-09-10 | Merge branch 'for-4.3/blkcg' of git://git.kernel.dk/linux-block | Linus Torvalds | 1 | -5/+0 |
| 2015-08-18 | blkcg: consolidate blkg creation in blkcg_bio_issue_check() | Tejun Heo | 1 | -5/+0 |
| 2015-08-15 | blk-mq: fix race between timeout and freeing request | Ming Lei | 1 | -0/+6 |
| 2015-05-08 | blk-mq: make plug work for mutiple disks and queues | Shaohua Li | 1 | -1/+2 |
| 2015-05-05 | block: move PM request support to IDE | Christoph Hellwig | 1 | -2/+0 |
| 2014-09-25 | blk-mq: support per-distpatch_queue flush machinery | Ming Lei | 1 | -3/+13 |
| 2014-09-25 | block: introduce 'blk_mq_ctx' parameter to blk_get_flush_queue | Ming Lei | 1 | -2/+2 |
| 2014-09-25 | block: remove blk_init_flush() and its pair | Ming Lei | 1 | -2/+2 |
| 2014-09-25 | block: introduce blk_flush_queue to drive flush machinery | Ming Lei | 1 | -2/+20 |
| 2014-09-25 | block: introduce blk_init_flush and its pair | Ming Lei | 1 | -0/+3 |
| 2014-09-22 | blk-mq: unshared timeout handler | Christoph Hellwig | 1 | -2/+0 |
| 2014-06-11 | block: remove elv_abort_queue and blk_abort_flushes | Christoph Hellwig | 1 | -1/+0 |
| 2014-05-20 | blk-mq: allow changing of queue depth through sysfs | Jens Axboe | 1 | -0/+2 |
| 2014-05-13 | blk-mq: improve support for shared tags maps | Jens Axboe | 1 | -0/+4 |
| 2014-04-24 | blk-mq: fix race with timeouts and requeue events | Jens Axboe | 1 | -2/+1 |
| 2014-04-09 | block: fix regression with block enabled tagging | Jens Axboe | 1 | -1/+1 |
| 2014-01-30 | block: __elv_next_request() shouldn't call into the elevator if bypassing | Tejun Heo | 1 | -1/+1 |
| 2013-10-25 | blk-mq: new multi-queue block IO queueing mechanism | Jens Axboe | 1 | -0/+17 |
| 2013-01-11 | block,elevator: use new hashtable implementation | Sasha Levin | 1 | -1/+1 |
| 2012-12-06 | block: Avoid that request_fn is invoked on a dead queue | Bart Van Assche | 1 | -0/+2 |
| 2012-12-06 | block: Rename queue dead flag | Bart Van Assche | 1 | -1/+1 |
| 2012-09-20 | block: Clean up special command handling logic | Martin K. Petersen | 1 | -3/+2 |
| 2012-08-01 | block: remove dead func declaration | Yuanhan Liu | 1 | -1/+0 |
| 2012-06-25 | block: prepare for multiple request_lists | Tejun Heo | 1 | -0/+3 |
| 2012-04-01 | Merge branch 'for-3.5' of ../cgroup into block/for-3.5/core-merged | Tejun Heo | 1 | -16/+0 |
| 2012-03-06 | block: interface update for ioc/icq creation functions | Tejun Heo | 1 | -13/+11 |
| 2012-03-06 | blkcg: add blkcg_{init|drain|exit}_queue() | Tejun Heo | 1 | -2/+0 |
| 2012-03-06 | block: implement blk_queue_bypass_start/end() | Tejun Heo | 1 | -4/+2 |
| 2012-03-01 | Merge branch 'linus' into sched/core | Ingo Molnar | 1 | -0/+2 |
| 2012-02-08 | block: separate out blk_rq_merge_ok() and blk_try_merge() from elevator funct... | Tejun Heo | 1 | -0/+2 |
| 2012-01-27 | sched, block: Unify cache detection | Peter Zijlstra | 1 | -16/+0 |
| 2011-12-14 | block, cfq: move icq creation and rq->elv.icq association to block core | Tejun Heo | 1 | -0/+1 |
| 2011-12-14 | block, cfq: move io_cq exit/release to blk-ioc.c | Tejun Heo | 1 | -0/+1 |
| 2011-12-14 | block, cfq: move io_cq lookup to blk-ioc.c | Tejun Heo | 1 | -0/+1 |
| 2011-12-14 | block: remove elevator_queue->ops | Tejun Heo | 1 | -5/+5 |
| 2011-12-14 | block, cfq: replace current_io_context() with create_io_context() | Tejun Heo | 1 | -3/+33 |
| 2011-12-14 | block: misc updates to blk_get_queue() | Tejun Heo | 1 | -0/+5 |
| 2011-12-14 | block: make ioc get/put interface more conventional and fix race on alloction | Tejun Heo | 1 | -0/+1 |
| 2011-12-14 | block, cfq: move cfqd->cic_index to q->id | Tejun Heo | 1 | -0/+3 |
| 2011-12-14 | block: add blk_queue_dead() | Tejun Heo | 1 | -1/+1 |
| 2011-10-19 | block: fix request_queue lifetime handling by making blk_queue_cleanup() prop... | Tejun Heo | 1 | -1/+5 |
| 2011-10-19 | block: reorganize throtl_get_tg() and blk_throtl_bio() | Tejun Heo | 1 | -3/+3 |
| 2011-10-19 | block: reorganize queue draining | Tejun Heo | 1 | -0/+1 |
| 2011-10-19 | block: move blk_throtl prototypes to block/blk.h | Tejun Heo | 1 | -1/+14 |
| 2011-08-15 | block: fix flush machinery for stacking drivers with differring flush flags | Jeff Moyer | 1 | -0/+2 |
| 2011-05-20 | Merge branch 'for-linus' into for-2.6.40/core | Jens Axboe | 1 | -1/+3 |
| 2011-05-20 | Merge commit 'v2.6.39' into for-2.6.40/core | Jens Axboe | 1 | -1/+0 |
| 2011-05-18 | block: add proper state guards to __elv_next_request | James Bottomley | 1 | -1/+2 |
| 2011-05-06 | block: hold queue if flush is running for non-queueable flush drive | shaohua.li@intel.com | 1 | -1/+20 |
| 2011-04-19 | block: get rid of QUEUE_FLAG_REENTER | Jens Axboe | 1 | -1/+0 |
| 2011-04-18 | block: add blk_run_queue_async | Christoph Hellwig | 1 | -0/+1 |
| 2011-03-31 | Fix common misspellings | Lucas De Marchi | 1 | -1/+1 |