diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-09-07 17:02:24 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-09-07 17:02:24 -0400 |
commit | 4e4adb2f462889b9eac736dd06d60658beb091b6 (patch) | |
tree | 3582dab57d97bbb30add005b3b2f8a8d8412121e /fs/nfsd | |
parent | 77a78806c7df8d414c33031a1ca5121876910c4f (diff) | |
parent | 5445b1fbd123420bffed5e629a420aa2a16bf849 (diff) |
Merge tag 'nfs-for-4.3-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs
Pull NFS client updates from Trond Myklebust:
"Highlights include:
Stable patches:
- Fix atomicity of pNFS commit list updates
- Fix NFSv4 handling of open(O_CREAT|O_EXCL|O_RDONLY)
- nfs_set_pgio_error sometimes misses errors
- Fix a thinko in xs_connect()
- Fix borkage in _same_data_server_addrs_locked()
- Fix a NULL pointer dereference of migration recovery ops for v4.2
client
- Don't let the ctime override attribute barriers.
- Revert "NFSv4: Remove incorrect check in can_open_delegated()"
- Ensure flexfiles pNFS driver updates the inode after write finishes
- flexfiles must not pollute the attribute cache with attrbutes from
the DS
- Fix a protocol error in layoutreturn
- Fix a protocol issue with NFSv4.1 CLOSE stateids
Bugfixes + cleanups
- pNFS blocks bugfixes from Christoph
- Various cleanups from Anna
- More fixes for delegation corner cases
- Don't fsync twice for O_SYNC/IS_SYNC files
- Fix pNFS and flexfiles layoutstats bugs
- pnfs/flexfiles: avoid duplicate tracking of mirror data
- pnfs: Fix layoutget/layoutreturn/return-on-close serialisation
issues
- pnfs/flexfiles: error handling retries a layoutget before fallback
to MDS
Features:
- Full support for the OPEN NFS4_CREATE_EXCLUSIVE4_1 mode from
Kinglong
- More RDMA client transport improvements from Chuck
- Removal of the deprecated ib_reg_phys_mr() and ib_rereg_phys_mr()
verbs from the SUNRPC, Lustre and core infiniband tree.
- Optimise away the close-to-open getattr if there is no cached data"
* tag 'nfs-for-4.3-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (108 commits)
NFSv4: Respect the server imposed limit on how many changes we may cache
NFSv4: Express delegation limit in units of pages
Revert "NFS: Make close(2) asynchronous when closing NFS O_DIRECT files"
NFS: Optimise away the close-to-open getattr if there is no cached data
NFSv4.1/flexfiles: Clean up ff_layout_write_done_cb/ff_layout_commit_done_cb
NFSv4.1/flexfiles: Mark the layout for return in ff_layout_io_track_ds_error()
nfs: Remove unneeded checking of the return value from scnprintf
nfs: Fix truncated client owner id without proto type
NFSv4.1/flexfiles: Mark layout for return if the mirrors are invalid
NFSv4.1/flexfiles: RW layouts are valid only if all mirrors are valid
NFSv4.1/flexfiles: Fix incorrect usage of pnfs_generic_mark_devid_invalid()
NFSv4.1/flexfiles: Fix freeing of mirrors
NFSv4.1/pNFS: Don't request a minimal read layout beyond the end of file
NFSv4.1/pnfs: Handle LAYOUTGET return values correctly
NFSv4.1/pnfs: Don't ask for a read layout for an empty file.
NFSv4.1: Fix a protocol issue with CLOSE stateids
NFSv4.1/flexfiles: Don't mark the entire deviceid as bad for file errors
SUNRPC: Prevent SYN+SYNACK+RST storms
SUNRPC: xs_reset_transport must mark the connection as disconnected
NFSv4.1/pnfs: Ensure layoutreturn reserves space for the opaque payload
...
Diffstat (limited to 'fs/nfsd')
-rw-r--r-- | fs/nfsd/blocklayoutxdr.c | 2 | ||||
-rw-r--r-- | fs/nfsd/blocklayoutxdr.h | 15 |
2 files changed, 1 insertions, 16 deletions
diff --git a/fs/nfsd/blocklayoutxdr.c b/fs/nfsd/blocklayoutxdr.c index 9aa2796da90d..6d834dc9bbc8 100644 --- a/fs/nfsd/blocklayoutxdr.c +++ b/fs/nfsd/blocklayoutxdr.c | |||
@@ -101,7 +101,7 @@ nfsd4_block_decode_layoutupdate(__be32 *p, u32 len, struct iomap **iomapp, | |||
101 | } | 101 | } |
102 | 102 | ||
103 | nr_iomaps = be32_to_cpup(p++); | 103 | nr_iomaps = be32_to_cpup(p++); |
104 | expected = sizeof(__be32) + nr_iomaps * NFS4_BLOCK_EXTENT_SIZE; | 104 | expected = sizeof(__be32) + nr_iomaps * PNFS_BLOCK_EXTENT_SIZE; |
105 | if (len != expected) { | 105 | if (len != expected) { |
106 | dprintk("%s: extent array size mismatch: %u/%u\n", | 106 | dprintk("%s: extent array size mismatch: %u/%u\n", |
107 | __func__, len, expected); | 107 | __func__, len, expected); |
diff --git a/fs/nfsd/blocklayoutxdr.h b/fs/nfsd/blocklayoutxdr.h index fdc79037c0e7..6de925fe8499 100644 --- a/fs/nfsd/blocklayoutxdr.h +++ b/fs/nfsd/blocklayoutxdr.h | |||
@@ -7,13 +7,6 @@ | |||
7 | struct iomap; | 7 | struct iomap; |
8 | struct xdr_stream; | 8 | struct xdr_stream; |
9 | 9 | ||
10 | enum pnfs_block_extent_state { | ||
11 | PNFS_BLOCK_READWRITE_DATA = 0, | ||
12 | PNFS_BLOCK_READ_DATA = 1, | ||
13 | PNFS_BLOCK_INVALID_DATA = 2, | ||
14 | PNFS_BLOCK_NONE_DATA = 3, | ||
15 | }; | ||
16 | |||
17 | struct pnfs_block_extent { | 10 | struct pnfs_block_extent { |
18 | struct nfsd4_deviceid vol_id; | 11 | struct nfsd4_deviceid vol_id; |
19 | u64 foff; | 12 | u64 foff; |
@@ -21,14 +14,6 @@ struct pnfs_block_extent { | |||
21 | u64 soff; | 14 | u64 soff; |
22 | enum pnfs_block_extent_state es; | 15 | enum pnfs_block_extent_state es; |
23 | }; | 16 | }; |
24 | #define NFS4_BLOCK_EXTENT_SIZE 44 | ||
25 | |||
26 | enum pnfs_block_volume_type { | ||
27 | PNFS_BLOCK_VOLUME_SIMPLE = 0, | ||
28 | PNFS_BLOCK_VOLUME_SLICE = 1, | ||
29 | PNFS_BLOCK_VOLUME_CONCAT = 2, | ||
30 | PNFS_BLOCK_VOLUME_STRIPE = 3, | ||
31 | }; | ||
32 | 17 | ||
33 | /* | 18 | /* |
34 | * Random upper cap for the uuid length to avoid unbounded allocation. | 19 | * Random upper cap for the uuid length to avoid unbounded allocation. |