NFS: Create a common read and write header struct
authorAnna Schumaker <Anna.Schumaker@netapp.com>
Tue, 6 May 2014 13:12:27 +0000 (09:12 -0400)
committerTrond Myklebust <trond.myklebust@primarydata.com>
Wed, 28 May 2014 22:12:55 +0000 (18:12 -0400)
The only difference is the write verifier field, but we can keep that
for a little bit longer.

Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
fs/nfs/internal.h
fs/nfs/pnfs.c
fs/nfs/read.c
fs/nfs/write.c
include/linux/nfs_xdr.h

index af01b80412dd1413fbadfa4ada1321f9f8301a39..b0e7a41d14a888b50cf288eec212ccb6b03e069e 100644 (file)
@@ -395,7 +395,7 @@ extern int nfs4_get_rootfh(struct nfs_server *server, struct nfs_fh *mntfh, bool
 
 struct nfs_pgio_completion_ops;
 /* read.c */
-extern struct nfs_read_header *nfs_readhdr_alloc(void);
+extern struct nfs_rw_header *nfs_readhdr_alloc(void);
 extern void nfs_readhdr_free(struct nfs_pgio_header *hdr);
 extern void nfs_pageio_init_read(struct nfs_pageio_descriptor *pgio,
                        struct inode *inode, bool force_mds,
@@ -424,7 +424,7 @@ int nfs_remount(struct super_block *sb, int *flags, char *raw_data);
 extern void nfs_pageio_init_write(struct nfs_pageio_descriptor *pgio,
                        struct inode *inode, int ioflags, bool force_mds,
                        const struct nfs_pgio_completion_ops *compl_ops);
-extern struct nfs_write_header *nfs_writehdr_alloc(void);
+extern struct nfs_rw_header *nfs_writehdr_alloc(void);
 extern void nfs_writehdr_free(struct nfs_pgio_header *hdr);
 extern int nfs_generic_flush(struct nfs_pageio_descriptor *desc,
                             struct nfs_pgio_header *hdr);
index e9cea3ab7cf9e3d5e8fad3f32b5d8f7fed2d3fb2..43cfe11aa1a4245b6ce1e6aed88bcc58b55a138e 100644 (file)
@@ -1592,7 +1592,7 @@ EXPORT_SYMBOL_GPL(pnfs_writehdr_free);
 int
 pnfs_generic_pg_writepages(struct nfs_pageio_descriptor *desc)
 {
-       struct nfs_write_header *whdr;
+       struct nfs_rw_header *whdr;
        struct nfs_pgio_header *hdr;
        int ret;
 
@@ -1750,7 +1750,7 @@ EXPORT_SYMBOL_GPL(pnfs_readhdr_free);
 int
 pnfs_generic_pg_readpages(struct nfs_pageio_descriptor *desc)
 {
-       struct nfs_read_header *rhdr;
+       struct nfs_rw_header *rhdr;
        struct nfs_pgio_header *hdr;
        int ret;
 
index 9e426cc179ed9d4b1fa302ff36e784ce6b1620c5..d29ca3673694847c78888ec41a12b6f6b50d47e6 100644 (file)
@@ -34,9 +34,9 @@ static const struct nfs_pgio_completion_ops nfs_async_read_completion_ops;
 
 static struct kmem_cache *nfs_rdata_cachep;
 
-struct nfs_read_header *nfs_readhdr_alloc(void)
+struct nfs_rw_header *nfs_readhdr_alloc(void)
 {
-       struct nfs_read_header *rhdr;
+       struct nfs_rw_header *rhdr;
 
        rhdr = kmem_cache_zalloc(nfs_rdata_cachep, GFP_KERNEL);
        if (rhdr) {
@@ -56,7 +56,7 @@ static struct nfs_pgio_data *nfs_readdata_alloc(struct nfs_pgio_header *hdr,
 {
        struct nfs_pgio_data *data, *prealloc;
 
-       prealloc = &container_of(hdr, struct nfs_read_header, header)->rpc_data;
+       prealloc = &container_of(hdr, struct nfs_rw_header, header)->rpc_data;
        if (prealloc->header == NULL)
                data = prealloc;
        else
@@ -78,7 +78,7 @@ out:
 
 void nfs_readhdr_free(struct nfs_pgio_header *hdr)
 {
-       struct nfs_read_header *rhdr = container_of(hdr, struct nfs_read_header, header);
+       struct nfs_rw_header *rhdr = container_of(hdr, struct nfs_rw_header, header);
 
        kmem_cache_free(nfs_rdata_cachep, rhdr);
 }
@@ -87,7 +87,7 @@ EXPORT_SYMBOL_GPL(nfs_readhdr_free);
 void nfs_readdata_release(struct nfs_pgio_data *rdata)
 {
        struct nfs_pgio_header *hdr = rdata->header;
-       struct nfs_read_header *read_header = container_of(hdr, struct nfs_read_header, header);
+       struct nfs_rw_header *read_header = container_of(hdr, struct nfs_rw_header, header);
 
        put_nfs_open_context(rdata->args.context);
        if (rdata->pages.pagevec != rdata->pages.page_array)
@@ -417,7 +417,7 @@ EXPORT_SYMBOL_GPL(nfs_generic_pagein);
 
 static int nfs_generic_pg_readpages(struct nfs_pageio_descriptor *desc)
 {
-       struct nfs_read_header *rhdr;
+       struct nfs_rw_header *rhdr;
        struct nfs_pgio_header *hdr;
        int ret;
 
@@ -680,7 +680,7 @@ out:
 int __init nfs_init_readpagecache(void)
 {
        nfs_rdata_cachep = kmem_cache_create("nfs_read_data",
-                                            sizeof(struct nfs_read_header),
+                                            sizeof(struct nfs_rw_header),
                                             0, SLAB_HWCACHE_ALIGN,
                                             NULL);
        if (nfs_rdata_cachep == NULL)
index 3a2fc5c4c79a36e0ba0cf349fd32a6b456e0f863..37c4c988519ce57e37bf1416e5e7960f5b575a57 100644 (file)
@@ -70,9 +70,9 @@ void nfs_commit_free(struct nfs_commit_data *p)
 }
 EXPORT_SYMBOL_GPL(nfs_commit_free);
 
-struct nfs_write_header *nfs_writehdr_alloc(void)
+struct nfs_rw_header *nfs_writehdr_alloc(void)
 {
-       struct nfs_write_header *p = mempool_alloc(nfs_wdata_mempool, GFP_NOIO);
+       struct nfs_rw_header *p = mempool_alloc(nfs_wdata_mempool, GFP_NOIO);
 
        if (p) {
                struct nfs_pgio_header *hdr = &p->header;
@@ -93,7 +93,7 @@ static struct nfs_pgio_data *nfs_writedata_alloc(struct nfs_pgio_header *hdr,
 {
        struct nfs_pgio_data *data, *prealloc;
 
-       prealloc = &container_of(hdr, struct nfs_write_header, header)->rpc_data;
+       prealloc = &container_of(hdr, struct nfs_rw_header, header)->rpc_data;
        if (prealloc->header == NULL)
                data = prealloc;
        else
@@ -115,7 +115,7 @@ out:
 
 void nfs_writehdr_free(struct nfs_pgio_header *hdr)
 {
-       struct nfs_write_header *whdr = container_of(hdr, struct nfs_write_header, header);
+       struct nfs_rw_header *whdr = container_of(hdr, struct nfs_rw_header, header);
        mempool_free(whdr, nfs_wdata_mempool);
 }
 EXPORT_SYMBOL_GPL(nfs_writehdr_free);
@@ -123,7 +123,7 @@ EXPORT_SYMBOL_GPL(nfs_writehdr_free);
 void nfs_writedata_release(struct nfs_pgio_data *wdata)
 {
        struct nfs_pgio_header *hdr = wdata->header;
-       struct nfs_write_header *write_header = container_of(hdr, struct nfs_write_header, header);
+       struct nfs_rw_header *write_header = container_of(hdr, struct nfs_rw_header, header);
 
        put_nfs_open_context(wdata->args.context);
        if (wdata->pages.pagevec != wdata->pages.page_array)
@@ -1253,7 +1253,7 @@ EXPORT_SYMBOL_GPL(nfs_generic_flush);
 
 static int nfs_generic_pg_writepages(struct nfs_pageio_descriptor *desc)
 {
-       struct nfs_write_header *whdr;
+       struct nfs_rw_header *whdr;
        struct nfs_pgio_header *hdr;
        int ret;
 
@@ -1910,7 +1910,7 @@ int nfs_migrate_page(struct address_space *mapping, struct page *newpage,
 int __init nfs_init_writepagecache(void)
 {
        nfs_wdata_cachep = kmem_cache_create("nfs_write_data",
-                                            sizeof(struct nfs_write_header),
+                                            sizeof(struct nfs_rw_header),
                                             0, SLAB_HWCACHE_ALIGN,
                                             NULL);
        if (nfs_wdata_cachep == NULL)
index 64f6f1491c0d8a83c7ad240c9eaae527f64c7b46..2d34e0dc1870368fee908a1a744d8036fa024b6e 100644 (file)
@@ -1294,12 +1294,7 @@ struct nfs_pgio_data {
        struct nfs_client       *ds_clp;        /* pNFS data server */
 };
 
-struct nfs_read_header {
-       struct nfs_pgio_header  header;
-       struct nfs_pgio_data    rpc_data;
-};
-
-struct nfs_write_header {
+struct nfs_rw_header {
        struct nfs_pgio_header  header;
        struct nfs_pgio_data    rpc_data;
        struct nfs_writeverf    verf;