diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-11 09:04:23 +0900 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-11 09:04:23 +0900 | 
| commit | ce40be7a820bb393ac4ac69865f018d2f4038cf0 (patch) | |
| tree | b1fe5a93346eb06f22b1c303d63ec5456d7212ab /lib/scatterlist.c | |
| parent | ba0a5a36f60e4c1152af3a2ae2813251974405bf (diff) | |
| parent | 02f3939e1a9357b7c370a4a69717cf9c02452737 (diff) | |
| download | olio-linux-3.10-ce40be7a820bb393ac4ac69865f018d2f4038cf0.tar.xz olio-linux-3.10-ce40be7a820bb393ac4ac69865f018d2f4038cf0.zip  | |
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
6b2dbba8b6ac: "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()
  ...
Diffstat (limited to 'lib/scatterlist.c')
| -rw-r--r-- | lib/scatterlist.c | 19 | 
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/scatterlist.c b/lib/scatterlist.c index e76d85cf317..3675452b23c 100644 --- a/lib/scatterlist.c +++ b/lib/scatterlist.c @@ -39,6 +39,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   * @nents:	Number of entries in the scatterlist  |