Merge branch 'for-3.7/core' of git://git.kernel.dk/linux-block
Pull block IO update from Jens Axboe:
"Core block IO bits for 3.7. Not a huge round this time, it contains:
- First series from Kent cleaning up and generalizing bio allocation
and freeing.
- WRITE_SAME support from Martin.
- Mikulas patches to prevent O_DIRECT crashes when someone changes
the block size of a device.
- Make bio_split() work on data-less bio's (like trim/discards).
- A few other minor fixups."
Fixed up silent semantic mis-merge as per Mikulas Patocka and Andrew
Morton. It is due to the VM no longer using a prio-tree (see commit
6b2dbba8b6
: "mm: replace vma prio_tree with an interval tree").
So make set_blocksize() use mapping_mapped() instead of open-coding the
internal VM knowledge that has changed.
* 'for-3.7/core' of git://git.kernel.dk/linux-block: (26 commits)
block: makes bio_split support bio without data
scatterlist: refactor the sg_nents
scatterlist: add sg_nents
fs: fix include/percpu-rwsem.h export error
percpu-rw-semaphore: fix documentation typos
fs/block_dev.c:1644:5: sparse: symbol 'blkdev_mmap' was not declared
blockdev: turn a rw semaphore into a percpu rw semaphore
Fix a crash when block device is read and block size is changed at the same time
block: fix request_queue->flags initialization
block: lift the initial queue bypass mode on blk_register_queue() instead of blk_init_allocated_queue()
block: ioctl to zero block ranges
block: Make blkdev_issue_zeroout use WRITE SAME
block: Implement support for WRITE SAME
block: Consolidate command flag and queue limit checks for merges
block: Clean up special command handling logic
block/blk-tag.c: Remove useless kfree
block: remove the duplicated setting for congestion_threshold
block: reject invalid queue attribute values
block: Add bio_clone_bioset(), bio_clone_kmalloc()
block: Consolidate bio_alloc_bioset(), bio_kmalloc()
...
This commit is contained in:
@@ -38,6 +38,25 @@ struct scatterlist *sg_next(struct scatterlist *sg)
|
||||
}
|
||||
EXPORT_SYMBOL(sg_next);
|
||||
|
||||
/**
|
||||
* sg_nents - return total count of entries in scatterlist
|
||||
* @sg: The scatterlist
|
||||
*
|
||||
* Description:
|
||||
* Allows to know how many entries are in sg, taking into acount
|
||||
* chaining as well
|
||||
*
|
||||
**/
|
||||
int sg_nents(struct scatterlist *sg)
|
||||
{
|
||||
int nents;
|
||||
for (nents = 0; sg; sg = sg_next(sg))
|
||||
nents++;
|
||||
return nents;
|
||||
}
|
||||
EXPORT_SYMBOL(sg_nents);
|
||||
|
||||
|
||||
/**
|
||||
* sg_last - return the last scatterlist entry in a list
|
||||
* @sgl: First entry in the scatterlist
|
||||
|
Reference in New Issue
Block a user