diff options
Diffstat (limited to 'fs/nfsd')
-rw-r--r-- | fs/nfsd/blocklayout.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/fs/nfsd/blocklayout.c b/fs/nfsd/blocklayout.c index 03d647bf195d..cdefaa331a07 100644 --- a/fs/nfsd/blocklayout.c +++ b/fs/nfsd/blocklayout.c | |||
@@ -181,6 +181,17 @@ nfsd4_block_proc_layoutcommit(struct inode *inode, | |||
181 | } | 181 | } |
182 | 182 | ||
183 | const struct nfsd4_layout_ops bl_layout_ops = { | 183 | const struct nfsd4_layout_ops bl_layout_ops = { |
184 | /* | ||
185 | * Pretend that we send notification to the client. This is a blatant | ||
186 | * lie to force recent Linux clients to cache our device IDs. | ||
187 | * We rarely ever change the device ID, so the harm of leaking deviceids | ||
188 | * for a while isn't too bad. Unfortunately RFC5661 is a complete mess | ||
189 | * in this regard, but I filed errata 4119 for this a while ago, and | ||
190 | * hopefully the Linux client will eventually start caching deviceids | ||
191 | * without this again. | ||
192 | */ | ||
193 | .notify_types = | ||
194 | NOTIFY_DEVICEID4_DELETE | NOTIFY_DEVICEID4_CHANGE, | ||
184 | .proc_getdeviceinfo = nfsd4_block_proc_getdeviceinfo, | 195 | .proc_getdeviceinfo = nfsd4_block_proc_getdeviceinfo, |
185 | .encode_getdeviceinfo = nfsd4_block_encode_getdeviceinfo, | 196 | .encode_getdeviceinfo = nfsd4_block_encode_getdeviceinfo, |
186 | .proc_layoutget = nfsd4_block_proc_layoutget, | 197 | .proc_layoutget = nfsd4_block_proc_layoutget, |