diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-10 20:04:23 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-10 20:04:23 -0400 |
commit | ce40be7a820bb393ac4ac69865f018d2f4038cf0 (patch) | |
tree | b1fe5a93346eb06f22b1c303d63ec5456d7212ab /include/linux/fs.h | |
parent | ba0a5a36f60e4c1152af3a2ae2813251974405bf (diff) | |
parent | 02f3939e1a9357b7c370a4a69717cf9c02452737 (diff) |
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 'include/linux/fs.h')
-rw-r--r-- | include/linux/fs.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h index c617ed024df8..39f3e12ca752 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -335,6 +335,7 @@ struct inodes_stat_t { | |||
335 | #define BLKDISCARDZEROES _IO(0x12,124) | 335 | #define BLKDISCARDZEROES _IO(0x12,124) |
336 | #define BLKSECDISCARD _IO(0x12,125) | 336 | #define BLKSECDISCARD _IO(0x12,125) |
337 | #define BLKROTATIONAL _IO(0x12,126) | 337 | #define BLKROTATIONAL _IO(0x12,126) |
338 | #define BLKZEROOUT _IO(0x12,127) | ||
338 | 339 | ||
339 | #define BMAP_IOCTL 1 /* obsolete - kept for compatibility */ | 340 | #define BMAP_IOCTL 1 /* obsolete - kept for compatibility */ |
340 | #define FIBMAP _IO(0x00,1) /* bmap access */ | 341 | #define FIBMAP _IO(0x00,1) /* bmap access */ |
@@ -415,6 +416,7 @@ struct inodes_stat_t { | |||
415 | #include <linux/migrate_mode.h> | 416 | #include <linux/migrate_mode.h> |
416 | #include <linux/uidgid.h> | 417 | #include <linux/uidgid.h> |
417 | #include <linux/lockdep.h> | 418 | #include <linux/lockdep.h> |
419 | #include <linux/percpu-rwsem.h> | ||
418 | 420 | ||
419 | #include <asm/byteorder.h> | 421 | #include <asm/byteorder.h> |
420 | 422 | ||
@@ -724,6 +726,8 @@ struct block_device { | |||
724 | int bd_fsfreeze_count; | 726 | int bd_fsfreeze_count; |
725 | /* Mutex for freeze */ | 727 | /* Mutex for freeze */ |
726 | struct mutex bd_fsfreeze_mutex; | 728 | struct mutex bd_fsfreeze_mutex; |
729 | /* A semaphore that prevents I/O while block size is being changed */ | ||
730 | struct percpu_rw_semaphore bd_block_size_semaphore; | ||
727 | }; | 731 | }; |
728 | 732 | ||
729 | /* | 733 | /* |
@@ -2570,6 +2574,8 @@ extern int generic_segment_checks(const struct iovec *iov, | |||
2570 | unsigned long *nr_segs, size_t *count, int access_flags); | 2574 | unsigned long *nr_segs, size_t *count, int access_flags); |
2571 | 2575 | ||
2572 | /* fs/block_dev.c */ | 2576 | /* fs/block_dev.c */ |
2577 | extern ssize_t blkdev_aio_read(struct kiocb *iocb, const struct iovec *iov, | ||
2578 | unsigned long nr_segs, loff_t pos); | ||
2573 | extern ssize_t blkdev_aio_write(struct kiocb *iocb, const struct iovec *iov, | 2579 | extern ssize_t blkdev_aio_write(struct kiocb *iocb, const struct iovec *iov, |
2574 | unsigned long nr_segs, loff_t pos); | 2580 | unsigned long nr_segs, loff_t pos); |
2575 | extern int blkdev_fsync(struct file *filp, loff_t start, loff_t end, | 2581 | extern int blkdev_fsync(struct file *filp, loff_t start, loff_t end, |