summaryrefslogtreecommitdiffstats
path: root/Documentation/filesystems
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2014-07-16 15:57:38 -0400
committerThomas Gleixner <tglx@linutronix.de>2014-07-16 15:57:38 -0400
commitafdb094380889222583df9ef803587f6b8a82c8d (patch)
tree4a03c516568e5c8b994a5739f3d34f4552c78898 /Documentation/filesystems
parentbe11e6d86081aa6328eaa4fe6dd14ccf39a023c8 (diff)
parent1795cd9b3a91d4b5473c97f491d63892442212ab (diff)
Merge tag 'v3.16-rc5' into timers/core
Reason: Bring in upstream modifications, so the pending changes which depend on them can be queued.
Diffstat (limited to 'Documentation/filesystems')
-rw-r--r--Documentation/filesystems/Locking5
-rw-r--r--Documentation/filesystems/f2fs.txt8
-rw-r--r--Documentation/filesystems/nfs/nfs41-server.txt2
-rw-r--r--Documentation/filesystems/vfs.txt13
4 files changed, 16 insertions, 12 deletions
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking
index eba790134253..b18dd1779029 100644
--- a/Documentation/filesystems/Locking
+++ b/Documentation/filesystems/Locking
@@ -196,8 +196,7 @@ prototypes:
196 void (*invalidatepage) (struct page *, unsigned int, unsigned int); 196 void (*invalidatepage) (struct page *, unsigned int, unsigned int);
197 int (*releasepage) (struct page *, int); 197 int (*releasepage) (struct page *, int);
198 void (*freepage)(struct page *); 198 void (*freepage)(struct page *);
199 int (*direct_IO)(int, struct kiocb *, const struct iovec *iov, 199 int (*direct_IO)(int, struct kiocb *, struct iov_iter *iter, loff_t offset);
200 loff_t offset, unsigned long nr_segs);
201 int (*get_xip_mem)(struct address_space *, pgoff_t, int, void **, 200 int (*get_xip_mem)(struct address_space *, pgoff_t, int, void **,
202 unsigned long *); 201 unsigned long *);
203 int (*migratepage)(struct address_space *, struct page *, struct page *); 202 int (*migratepage)(struct address_space *, struct page *, struct page *);
@@ -431,6 +430,8 @@ prototypes:
431 ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *); 430 ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *);
432 ssize_t (*aio_read) (struct kiocb *, const struct iovec *, unsigned long, loff_t); 431 ssize_t (*aio_read) (struct kiocb *, const struct iovec *, unsigned long, loff_t);
433 ssize_t (*aio_write) (struct kiocb *, const struct iovec *, unsigned long, loff_t); 432 ssize_t (*aio_write) (struct kiocb *, const struct iovec *, unsigned long, loff_t);
433 ssize_t (*read_iter) (struct kiocb *, struct iov_iter *);
434 ssize_t (*write_iter) (struct kiocb *, struct iov_iter *);
434 int (*iterate) (struct file *, struct dir_context *); 435 int (*iterate) (struct file *, struct dir_context *);
435 unsigned int (*poll) (struct file *, struct poll_table_struct *); 436 unsigned int (*poll) (struct file *, struct poll_table_struct *);
436 long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long); 437 long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long);
diff --git a/Documentation/filesystems/f2fs.txt b/Documentation/filesystems/f2fs.txt
index 25311e113e75..51afba17bbae 100644
--- a/Documentation/filesystems/f2fs.txt
+++ b/Documentation/filesystems/f2fs.txt
@@ -461,11 +461,11 @@ The number of blocks and buckets are determined by,
461 # of blocks in level #n = | 461 # of blocks in level #n = |
462 `- 4, Otherwise 462 `- 4, Otherwise
463 463
464 ,- 2^ (n + dir_level), 464 ,- 2^(n + dir_level),
465 | if n < MAX_DIR_HASH_DEPTH / 2, 465 | if n + dir_level < MAX_DIR_HASH_DEPTH / 2,
466 # of buckets in level #n = | 466 # of buckets in level #n = |
467 `- 2^((MAX_DIR_HASH_DEPTH / 2 + dir_level) - 1), 467 `- 2^((MAX_DIR_HASH_DEPTH / 2) - 1),
468 Otherwise 468 Otherwise
469 469
470When F2FS finds a file name in a directory, at first a hash value of the file 470When F2FS finds a file name in a directory, at first a hash value of the file
471name is calculated. Then, F2FS scans the hash table in level #0 to find the 471name is calculated. Then, F2FS scans the hash table in level #0 to find the
diff --git a/Documentation/filesystems/nfs/nfs41-server.txt b/Documentation/filesystems/nfs/nfs41-server.txt
index b930ad087780..c49cd7e796e7 100644
--- a/Documentation/filesystems/nfs/nfs41-server.txt
+++ b/Documentation/filesystems/nfs/nfs41-server.txt
@@ -176,7 +176,5 @@ Nonstandard compound limitations:
176 ca_maxrequestsize request and a ca_maxresponsesize reply, so we may 176 ca_maxrequestsize request and a ca_maxresponsesize reply, so we may
177 fail to live up to the promise we made in CREATE_SESSION fore channel 177 fail to live up to the promise we made in CREATE_SESSION fore channel
178 negotiation. 178 negotiation.
179* No more than one read-like operation allowed per compound; encoding
180 replies that cross page boundaries (except for read data) not handled.
181 179
182See also http://wiki.linux-nfs.org/wiki/index.php/Server_4.0_and_4.1_issues. 180See also http://wiki.linux-nfs.org/wiki/index.php/Server_4.0_and_4.1_issues.
diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt
index 617f6d70c077..a1d0d7a30165 100644
--- a/Documentation/filesystems/vfs.txt
+++ b/Documentation/filesystems/vfs.txt
@@ -589,8 +589,7 @@ struct address_space_operations {
589 void (*invalidatepage) (struct page *, unsigned int, unsigned int); 589 void (*invalidatepage) (struct page *, unsigned int, unsigned int);
590 int (*releasepage) (struct page *, int); 590 int (*releasepage) (struct page *, int);
591 void (*freepage)(struct page *); 591 void (*freepage)(struct page *);
592 ssize_t (*direct_IO)(int, struct kiocb *, const struct iovec *iov, 592 ssize_t (*direct_IO)(int, struct kiocb *, struct iov_iter *iter, loff_t offset);
593 loff_t offset, unsigned long nr_segs);
594 struct page* (*get_xip_page)(struct address_space *, sector_t, 593 struct page* (*get_xip_page)(struct address_space *, sector_t,
595 int); 594 int);
596 /* migrate the contents of a page to the specified target */ 595 /* migrate the contents of a page to the specified target */
@@ -807,6 +806,8 @@ struct file_operations {
807 ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *); 806 ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *);
808 ssize_t (*aio_read) (struct kiocb *, const struct iovec *, unsigned long, loff_t); 807 ssize_t (*aio_read) (struct kiocb *, const struct iovec *, unsigned long, loff_t);
809 ssize_t (*aio_write) (struct kiocb *, const struct iovec *, unsigned long, loff_t); 808 ssize_t (*aio_write) (struct kiocb *, const struct iovec *, unsigned long, loff_t);
809 ssize_t (*read_iter) (struct kiocb *, struct iov_iter *);
810 ssize_t (*write_iter) (struct kiocb *, struct iov_iter *);
810 int (*iterate) (struct file *, struct dir_context *); 811 int (*iterate) (struct file *, struct dir_context *);
811 unsigned int (*poll) (struct file *, struct poll_table_struct *); 812 unsigned int (*poll) (struct file *, struct poll_table_struct *);
812 long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long); 813 long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long);
@@ -837,11 +838,15 @@ otherwise noted.
837 838
838 read: called by read(2) and related system calls 839 read: called by read(2) and related system calls
839 840
840 aio_read: called by io_submit(2) and other asynchronous I/O operations 841 aio_read: vectored, possibly asynchronous read
842
843 read_iter: possibly asynchronous read with iov_iter as destination
841 844
842 write: called by write(2) and related system calls 845 write: called by write(2) and related system calls
843 846
844 aio_write: called by io_submit(2) and other asynchronous I/O operations 847 aio_write: vectored, possibly asynchronous write
848
849 write_iter: possibly asynchronous write with iov_iter as source
845 850
846 iterate: called when the VFS needs to read the directory contents 851 iterate: called when the VFS needs to read the directory contents
847 852