aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/fs.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-10-10 20:04:23 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-10-10 20:04:23 -0400
commitce40be7a820bb393ac4ac69865f018d2f4038cf0 (patch)
treeb1fe5a93346eb06f22b1c303d63ec5456d7212ab /include/linux/fs.h
parentba0a5a36f60e4c1152af3a2ae2813251974405bf (diff)
parent02f3939e1a9357b7c370a4a69717cf9c02452737 (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.h6
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 */
2577extern ssize_t blkdev_aio_read(struct kiocb *iocb, const struct iovec *iov,
2578 unsigned long nr_segs, loff_t pos);
2573extern ssize_t blkdev_aio_write(struct kiocb *iocb, const struct iovec *iov, 2579extern 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);
2575extern int blkdev_fsync(struct file *filp, loff_t start, loff_t end, 2581extern int blkdev_fsync(struct file *filp, loff_t start, loff_t end,