summaryrefslogtreecommitdiffstats
path: root/fs/block_dev.c
AgeCommit message (Expand)Author
2018-07-27Merge tag 'for-linus-20180727' of git://git.kernel.dk/linux-blockLinus Torvalds
2018-07-26blkdev: __blkdev_direct_IO_simple: fix leak in error caseMartin Wilck
2018-06-12treewide: kmalloc() -> kmalloc_array()Kees Cook
2018-06-08Merge branch 'work.aio' of git://git.kernel.org/pub/scm/linux/kernel/git/viro...Linus Torvalds
2018-05-31fs: blkdev set bio prio from kiocb prioAdam Manzanares
2018-05-30fs: convert block_dev.c to bioset_init()Kent Overstreet
2018-05-29block: don't print a message when the device went awayChristoph Hellwig
2018-05-29block: unexport check_disk_size_changeChristoph Hellwig
2018-04-10Merge tag 'libnvdimm-for-4.17' of git://git.kernel.org/pub/scm/linux/kernel/g...Linus Torvalds
2018-04-05fs: don't flush pagecache when expanding block deviceshunki-fujita
2018-03-30block, dax: remove dead code in blkdev_writepages()Dan Williams
2018-02-26blockdev: Avoid two active bdev inodes for one deviceJan Kara
2018-02-26genhd: Fix use after free in __blkdev_get()Jan Kara
2018-02-26genhd: Add helper put_disk_and_module()Jan Kara
2017-11-14Merge branch 'for-4.15/block' of git://git.kernel.dk/linux-blockLinus Torvalds
2017-11-10block, scsi: Make SCSI quiesce and resume work reliablyBart Van Assche
2017-11-03block: add a poll_fn callback to struct request_queueChristoph Hellwig
2017-10-13fs/mpage.c: fix mpage_writepage() for pages with buffersMatthew Wilcox
2017-10-12fs/block_dev: remove vfs_msg() interfaceRakesh Pandit
2017-09-14Merge branch 'work.read_write' of git://git.kernel.org/pub/scm/linux/kernel/g...Linus Torvalds
2017-09-04block_dev: support RFW_NOWAIT on block device nodesChristoph Hellwig
2017-08-23block: replace bi_bdev with a gendisk pointer and partitions indexChristoph Hellwig
2017-08-23block: cache the partition index in struct block_deviceChristoph Hellwig
2017-07-07Merge tag 'for-linus-v4.13-2' of git://git.kernel.org/pub/scm/linux/kernel/gi...Linus Torvalds
2017-07-06block: convert to errseq_t based writeback error trackingJeff Layton
2017-07-06fs: new infrastructure for writeback error handling and reportingJeff Layton
2017-07-03Merge branch 'for-4.13/block' of git://git.kernel.dk/linux-blockLinus Torvalds
2017-06-28block: provide bio_uninit() free freeing integrity/task associationsJens Axboe
2017-06-27fs: add O_DIRECT and aio support for sending down write life time hintsJens Axboe
2017-06-18blk: replace bioset_create_nobvec() with a flags arg to bioset_create()NeilBrown
2017-06-09block: switch bios to blk_status_tChristoph Hellwig
2017-06-09block_dev: propagate bio_iov_iter_get_pages error in __blkdev_direct_IOChristoph Hellwig
2017-05-12Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/g...Linus Torvalds
2017-05-08block, dax: move "select DAX" from BLOCK to FS_DAXDan Williams
2017-05-05Merge tag 'libnvdimm-for-4.12' of git://git.kernel.org/pub/scm/linux/kernel/g...Linus Torvalds
2017-05-03fs/block_dev: always invalidate cleancache in invalidate_bdev()Andrey Ryabinin
2017-05-01block, dax: use correct format string in bdev_dax_supportedArnd Bergmann
2017-04-25block: remove block_device_operations ->direct_access()Dan Williams
2017-04-25block, dax: convert bdev_dax_supported() to dax_direct_access()Dan Williams
2017-04-21block: get rid of blk_integrity_revalidate()Ilya Dryomov
2017-04-20dax: introduce dax_direct_access()Dan Williams
2017-04-20block: kill bdev_dax_capable()Dan Williams
2017-04-08block_dev: use blkdev_issue_zerout for hole punchesChristoph Hellwig
2017-04-08block: add a flags argument to (__)blkdev_issue_zerooutChristoph Hellwig
2017-03-22block: Fix oops in locked_inode_to_wb_and_lock_list()Jan Kara
2017-03-22block: Fix bdi assignment to bdev inode when racing with disk deleteJan Kara
2017-03-02block: Initialize bd_bdi on inode initializationJan Kara
2017-02-27fs: add i_blocksize()Fabian Frederick
2017-02-21block: Revalidate i_bdev reference in bd_aquire()Jan Kara
2017-02-17Merge branch 'for-4.11/next' into for-4.11/linus-mergeJens Axboe
*chunk, int off, int size) { /* nada */ } static struct pcpu_chunk *pcpu_create_chunk(void) { const int nr_pages = pcpu_group_sizes[0] >> PAGE_SHIFT; struct pcpu_chunk *chunk; struct page *pages; int i; chunk = pcpu_alloc_chunk(); if (!chunk) return NULL; pages = alloc_pages(GFP_KERNEL, order_base_2(nr_pages)); if (!pages) { pcpu_free_chunk(chunk); return NULL; } for (i = 0; i < nr_pages; i++) pcpu_set_page_chunk(nth_page(pages, i), chunk); chunk->data = pages; chunk->base_addr = page_address(pages) - pcpu_group_offsets[0]; return chunk; } static void pcpu_destroy_chunk(struct pcpu_chunk *chunk) { const int nr_pages = pcpu_group_sizes[0] >> PAGE_SHIFT; if (chunk && chunk->data) __free_pages(chunk->data, order_base_2(nr_pages)); pcpu_free_chunk(chunk); } static struct page *pcpu_addr_to_page(void *addr) { return virt_to_page(addr); } static int __init pcpu_verify_alloc_info(const struct pcpu_alloc_info *ai) { size_t nr_pages, alloc_pages; /* all units must be in a single group */ if (ai->nr_groups != 1) { printk(KERN_CRIT "percpu: can't handle more than one groups\n"); return -EINVAL; } nr_pages = (ai->groups[0].nr_units * ai->unit_size) >> PAGE_SHIFT; alloc_pages = roundup_pow_of_two(nr_pages); if (alloc_pages > nr_pages) printk(KERN_WARNING "percpu: wasting %zu pages per chunk\n", alloc_pages - nr_pages); return 0; }