aboutsummaryrefslogtreecommitdiffstats
path: root/fs/block_dev.c
Commit message (Expand)AuthorAge
* block: fix current kernel-doc warningsRandy Dunlap2008-10-17
* block_dev: fix kernel-doc in new functionsRandy Dunlap2008-10-09
* Call flush_disk() after detecting an online resize.Andrew Patterson2008-10-09
* Added flush_disk to factor out common buffer cache flushing code.Andrew Patterson2008-10-09
* Adjust block device size after an online resize of a disk.Andrew Patterson2008-10-09
* Wrapper for lower-level revalidate_disk routines.Andrew Patterson2008-10-09
* block: always set bdev->bd_partTejun Heo2008-10-09
* block: move holder_dir from disk to part0Tejun Heo2008-10-09
* block: introduce partition 0Tejun Heo2008-10-09
* block: implement and use {disk|part}_to_dev()Tejun Heo2008-10-09
* block: fix disk->part[] dereferencing raceTejun Heo2008-10-09
* block: don't depend on consecutive minor spaceTejun Heo2008-10-09
* block: make variable and argument names more consistentTejun Heo2008-10-09
* [PATCH] switch mtd and dm-table to lookup_bdev()Al Viro2008-08-01
* [PATCH] fix bdev leak in block_dev.c do_open()Al Viro2008-08-01
* SL*B: drop kmem cache argument from constructorAlexey Dobriyan2008-07-26
* [PATCH] fix cgroup-inflicted breakage in block_dev.cAl Viro2008-06-23
* devscgroup: check for device permissions at mount timePavel Emelyanov2008-06-06
* fs/block_dev.c: remove #if 0'ed codeAdrian Bunk2008-02-19
* make struct def_blk_aops staticAdrian Bunk2008-02-19
* Introduce path_put()Jan Blunck2008-02-15
* Embed a struct path into struct nameidata instead of nd->{dentry,mnt}Jan Blunck2008-02-15
* kill an unused PTR_ERR in bdev_cache_init()Qi Yong2008-02-06
* Driver core: convert block from raw kobjects to core devicesKay Sievers2008-01-24
* Slab API: remove useless ctor parameter and reorder parametersChristoph Lameter2007-10-17
* block_dev: convert to new aopsNick Piggin2007-10-16
* Drop 'size' argument from bio_endio and bi_end_ioNeilBrown2007-10-10
* mm: Remove slab destructors from kmem_cache_create().Paul Mundt2007-07-19
* bd_claim_by_disk: fix warningAndrew Morton2007-07-16
* Replace obscure constructs in fs/block_dev.cJohannes Weiner2007-07-16
* fs/block_dev.c: use list_for_each_entry()Matthias Kaehlcke2007-07-16
* sendfile: remove .sendfile from filesystems that use generic_file_sendfile()Jens Axboe2007-07-10
* Remove SLAB_CTOR_CONSTRUCTORChristoph Lameter2007-05-17
* is_power_of_2 in fs/block_dev.cVignesh Babu BM2007-05-08
* slab allocators: Remove SLAB_DEBUG_INITIAL flagChristoph Lameter2007-05-07
* mm: optimize kill_bdev()Peter Zijlstra2007-05-07
* mm: remove destroy_dirty_buffers from invalidate_bdev()Peter Zijlstra2007-05-07
* [PATCH] lockdep: annotate BLKPG_DEL_PARTITIONPeter Zijlstra2007-02-20
* [PATCH] Mark struct super_operations constJosef 'Jeff' Sipek2007-02-12
* [PATCH] revert blockdev direct io back to 2.6.19 versionAndrew Morton2007-02-03
* [PATCH] fix blk_direct_IO bio preparationChen, Kenneth W2007-01-23
* [PATCH] blockdev direct_io: fix signedness bugAndrew Morton2007-01-23
* [PATCH] Revert bd_mount_mutex back to a semaphoreDavid Chinner2007-01-11
* [PATCH] optimize o_direct on block devicesChen, Kenneth W2006-12-13
* [PATCH] VFS: change struct file to use struct pathJosef "Jeff" Sipek2006-12-08
* [PATCH] bdev: fix ->bd_part_count leakPeter Zijlstra2006-12-08
* [PATCH] lockdep: use mutex_lock_nested for bd_mutex to avoid lockdep warningNeilBrown2006-12-08
* [PATCH] lockdep: simplify some aspects of bd_mutex nestingNeilBrown2006-12-08
* [PATCH] lockdep: remove lock_key approach to managing nested bd_mutex locksNeilBrown2006-12-08
* [PATCH] new bd_mutex lockdep annotationPeter Zijlstra2006-12-08
>} else { /* Leave this BUG_ON till prio_tree patch stabilizes */ BUG_ON(vma->shared.vm_set.head->shared.vm_set.head != vma); if (vma->shared.vm_set.parent) { head = vma->shared.vm_set.head; if (!list_empty(&head->shared.vm_set.list)) { new_head = list_entry( head->shared.vm_set.list.next, struct vm_area_struct, shared.vm_set.list); list_del_init(&head->shared.vm_set.list); } else new_head = NULL; raw_prio_tree_replace(root, &vma->shared.prio_tree_node, &head->shared.prio_tree_node); head->shared.vm_set.head = new_head; if (new_head) new_head->shared.vm_set.head = head; } else { node = vma->shared.vm_set.head; if (!list_empty(&vma->shared.vm_set.list)) { new_head = list_entry( vma->shared.vm_set.list.next, struct vm_area_struct, shared.vm_set.list); list_del_init(&vma->shared.vm_set.list); node->shared.vm_set.head = new_head; new_head->shared.vm_set.head = node; } else node->shared.vm_set.head = NULL; } } } /* * Helper function to enumerate vmas that map a given file page or a set of * contiguous file pages. The function returns vmas that at least map a single * page in the given range of contiguous file pages. */ struct vm_area_struct *vma_prio_tree_next(struct vm_area_struct *vma, struct prio_tree_iter *iter) { struct prio_tree_node *ptr; struct vm_area_struct *next; if (!vma) { /* * First call is with NULL vma */ ptr = prio_tree_next(iter); if (ptr) { next = prio_tree_entry(ptr, struct vm_area_struct, shared.prio_tree_node); prefetch(next->shared.vm_set.head); return next; } else return NULL; } if (vma->shared.vm_set.parent) { if (vma->shared.vm_set.head) { next = vma->shared.vm_set.head; prefetch(next->shared.vm_set.list.next); return next; } } else { next = list_entry(vma->shared.vm_set.list.next, struct vm_area_struct, shared.vm_set.list); if (!next->shared.vm_set.head) { prefetch(next->shared.vm_set.list.next); return next; } } ptr = prio_tree_next(iter); if (ptr) { next = prio_tree_entry(ptr, struct vm_area_struct, shared.prio_tree_node); prefetch(next->shared.vm_set.head); return next; } else return NULL; }