diff options
-rw-r--r-- | fs/nfs/internal.h | 1 | ||||
-rw-r--r-- | fs/nfs/nfs4filelayoutdev.c | 1 | ||||
-rw-r--r-- | fs/nfs/nfs4xdr.c | 8 | ||||
-rw-r--r-- | fs/nfs/pnfs.h | 3 |
4 files changed, 11 insertions, 2 deletions
diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h index 91e59a39fc08..4bd53f4e0fd2 100644 --- a/fs/nfs/internal.h +++ b/fs/nfs/internal.h | |||
@@ -255,6 +255,7 @@ extern int nfs4_decode_dirent(struct xdr_stream *, | |||
255 | #ifdef CONFIG_NFS_V4_1 | 255 | #ifdef CONFIG_NFS_V4_1 |
256 | extern const u32 nfs41_maxread_overhead; | 256 | extern const u32 nfs41_maxread_overhead; |
257 | extern const u32 nfs41_maxwrite_overhead; | 257 | extern const u32 nfs41_maxwrite_overhead; |
258 | extern const u32 nfs41_maxgetdevinfo_overhead; | ||
258 | #endif | 259 | #endif |
259 | 260 | ||
260 | /* nfs4proc.c */ | 261 | /* nfs4proc.c */ |
diff --git a/fs/nfs/nfs4filelayoutdev.c b/fs/nfs/nfs4filelayoutdev.c index 0493dbd129c5..95604f64cab8 100644 --- a/fs/nfs/nfs4filelayoutdev.c +++ b/fs/nfs/nfs4filelayoutdev.c | |||
@@ -711,6 +711,7 @@ filelayout_get_device_info(struct inode *inode, | |||
711 | pdev->pgbase = 0; | 711 | pdev->pgbase = 0; |
712 | pdev->pglen = max_resp_sz; | 712 | pdev->pglen = max_resp_sz; |
713 | pdev->mincount = 0; | 713 | pdev->mincount = 0; |
714 | pdev->maxcount = max_resp_sz - nfs41_maxgetdevinfo_overhead; | ||
714 | 715 | ||
715 | rc = nfs4_proc_getdeviceinfo(server, pdev, cred); | 716 | rc = nfs4_proc_getdeviceinfo(server, pdev, cred); |
716 | dprintk("%s getdevice info returns %d\n", __func__, rc); | 717 | dprintk("%s getdevice info returns %d\n", __func__, rc); |
diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c index 4be8d135ed61..27cc76d88f9a 100644 --- a/fs/nfs/nfs4xdr.c +++ b/fs/nfs/nfs4xdr.c | |||
@@ -853,6 +853,12 @@ const u32 nfs41_maxread_overhead = ((RPC_MAX_HEADER_WITH_AUTH + | |||
853 | decode_sequence_maxsz + | 853 | decode_sequence_maxsz + |
854 | decode_putfh_maxsz) * | 854 | decode_putfh_maxsz) * |
855 | XDR_UNIT); | 855 | XDR_UNIT); |
856 | |||
857 | const u32 nfs41_maxgetdevinfo_overhead = ((RPC_MAX_REPHEADER_WITH_AUTH + | ||
858 | compound_decode_hdr_maxsz + | ||
859 | decode_sequence_maxsz) * | ||
860 | XDR_UNIT); | ||
861 | EXPORT_SYMBOL_GPL(nfs41_maxgetdevinfo_overhead); | ||
856 | #endif /* CONFIG_NFS_V4_1 */ | 862 | #endif /* CONFIG_NFS_V4_1 */ |
857 | 863 | ||
858 | static const umode_t nfs_type2fmt[] = { | 864 | static const umode_t nfs_type2fmt[] = { |
@@ -1889,7 +1895,7 @@ encode_getdeviceinfo(struct xdr_stream *xdr, | |||
1889 | p = xdr_encode_opaque_fixed(p, args->pdev->dev_id.data, | 1895 | p = xdr_encode_opaque_fixed(p, args->pdev->dev_id.data, |
1890 | NFS4_DEVICEID4_SIZE); | 1896 | NFS4_DEVICEID4_SIZE); |
1891 | *p++ = cpu_to_be32(args->pdev->layout_type); | 1897 | *p++ = cpu_to_be32(args->pdev->layout_type); |
1892 | *p++ = cpu_to_be32(args->pdev->pglen); /* gdia_maxcount */ | 1898 | *p++ = cpu_to_be32(args->pdev->maxcount); /* gdia_maxcount */ |
1893 | *p++ = cpu_to_be32(0); /* bitmap length 0 */ | 1899 | *p++ = cpu_to_be32(0); /* bitmap length 0 */ |
1894 | } | 1900 | } |
1895 | 1901 | ||
diff --git a/fs/nfs/pnfs.h b/fs/nfs/pnfs.h index 1441dff9b0e7..a4f41810a7f4 100644 --- a/fs/nfs/pnfs.h +++ b/fs/nfs/pnfs.h | |||
@@ -149,9 +149,10 @@ struct pnfs_device { | |||
149 | struct nfs4_deviceid dev_id; | 149 | struct nfs4_deviceid dev_id; |
150 | unsigned int layout_type; | 150 | unsigned int layout_type; |
151 | unsigned int mincount; | 151 | unsigned int mincount; |
152 | unsigned int maxcount; /* gdia_maxcount */ | ||
152 | struct page **pages; | 153 | struct page **pages; |
153 | unsigned int pgbase; | 154 | unsigned int pgbase; |
154 | unsigned int pglen; | 155 | unsigned int pglen; /* reply buffer length */ |
155 | }; | 156 | }; |
156 | 157 | ||
157 | #define NFS4_PNFS_GETDEVLIST_MAXNUM 16 | 158 | #define NFS4_PNFS_GETDEVLIST_MAXNUM 16 |