diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-07-31 21:45:44 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-07-31 21:45:44 -0400 |
commit | 6dbb35b0a74b44b2a48a5373d48074c5aa69fdf5 (patch) | |
tree | 4afb5eec521659e19c9d2343c2431054a082eb06 /fs/nfs/read.c | |
parent | fd37ce34bd512f2b1a503f82abf8768da556a955 (diff) | |
parent | ad0fcd4eb68059de02e1766948263c71b8a5b1dc (diff) |
Merge tag 'nfs-for-3.6-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs
Pull second wave of NFS client updates from Trond Myklebust:
- Patches from Bryan to allow splitting of the NFSv2/v3/v4 code into
separate modules.
- Fix Oopses in the NFSv4 idmapper
- Fix a deadlock whereby rpciod tries to allocate a new socket and ends
up recursing into the NFS code due to memory reclaim.
- Increase the number of permitted callback connections.
* tag 'nfs-for-3.6-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
nfs: explicitly reject LOCK_MAND flock() requests
nfs: increase number of permitted callback connections.
SUNRPC: return negative value in case rpcbind client creation error
NFS: Convert v4 into a module
NFS: Convert v3 into a module
NFS: Convert v2 into a module
NFS: Keep module parameters in the generic NFS client
NFS: Split out remaining NFS v4 inode functions
NFS: Pass super operations and xattr handlers in the nfs_subversion
NFS: Only initialize the ACL client in the v3 case
NFS: Create a try_mount rpc op
NFS: Remove the NFS v4 xdev mount function
NFS: Add version registering framework
NFS: Fix a number of bugs in the idmapper
nfs: skip commit in releasepage if we're freeing memory for fs-related reasons
sunrpc: clarify comments on rpc_make_runnable
pnfsblock: bail out partial page IO
Diffstat (limited to 'fs/nfs/read.c')
-rw-r--r-- | fs/nfs/read.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/nfs/read.c b/fs/nfs/read.c index 6267b873bbcb..6935e401ad76 100644 --- a/fs/nfs/read.c +++ b/fs/nfs/read.c | |||
@@ -48,6 +48,7 @@ struct nfs_read_header *nfs_readhdr_alloc(void) | |||
48 | } | 48 | } |
49 | return rhdr; | 49 | return rhdr; |
50 | } | 50 | } |
51 | EXPORT_SYMBOL_GPL(nfs_readhdr_alloc); | ||
51 | 52 | ||
52 | static struct nfs_read_data *nfs_readdata_alloc(struct nfs_pgio_header *hdr, | 53 | static struct nfs_read_data *nfs_readdata_alloc(struct nfs_pgio_header *hdr, |
53 | unsigned int pagecount) | 54 | unsigned int pagecount) |
@@ -80,6 +81,7 @@ void nfs_readhdr_free(struct nfs_pgio_header *hdr) | |||
80 | 81 | ||
81 | kmem_cache_free(nfs_rdata_cachep, rhdr); | 82 | kmem_cache_free(nfs_rdata_cachep, rhdr); |
82 | } | 83 | } |
84 | EXPORT_SYMBOL_GPL(nfs_readhdr_free); | ||
83 | 85 | ||
84 | void nfs_readdata_release(struct nfs_read_data *rdata) | 86 | void nfs_readdata_release(struct nfs_read_data *rdata) |
85 | { | 87 | { |
@@ -96,6 +98,7 @@ void nfs_readdata_release(struct nfs_read_data *rdata) | |||
96 | if (atomic_dec_and_test(&hdr->refcnt)) | 98 | if (atomic_dec_and_test(&hdr->refcnt)) |
97 | hdr->completion_ops->completion(hdr); | 99 | hdr->completion_ops->completion(hdr); |
98 | } | 100 | } |
101 | EXPORT_SYMBOL_GPL(nfs_readdata_release); | ||
99 | 102 | ||
100 | static | 103 | static |
101 | int nfs_return_empty_page(struct page *page) | 104 | int nfs_return_empty_page(struct page *page) |
@@ -113,6 +116,7 @@ void nfs_pageio_init_read(struct nfs_pageio_descriptor *pgio, | |||
113 | nfs_pageio_init(pgio, inode, &nfs_pageio_read_ops, compl_ops, | 116 | nfs_pageio_init(pgio, inode, &nfs_pageio_read_ops, compl_ops, |
114 | NFS_SERVER(inode)->rsize, 0); | 117 | NFS_SERVER(inode)->rsize, 0); |
115 | } | 118 | } |
119 | EXPORT_SYMBOL_GPL(nfs_pageio_init_read); | ||
116 | 120 | ||
117 | void nfs_pageio_reset_read_mds(struct nfs_pageio_descriptor *pgio) | 121 | void nfs_pageio_reset_read_mds(struct nfs_pageio_descriptor *pgio) |
118 | { | 122 | { |
@@ -397,6 +401,7 @@ int nfs_generic_pagein(struct nfs_pageio_descriptor *desc, | |||
397 | return nfs_pagein_multi(desc, hdr); | 401 | return nfs_pagein_multi(desc, hdr); |
398 | return nfs_pagein_one(desc, hdr); | 402 | return nfs_pagein_one(desc, hdr); |
399 | } | 403 | } |
404 | EXPORT_SYMBOL_GPL(nfs_generic_pagein); | ||
400 | 405 | ||
401 | static int nfs_generic_pg_readpages(struct nfs_pageio_descriptor *desc) | 406 | static int nfs_generic_pg_readpages(struct nfs_pageio_descriptor *desc) |
402 | { | 407 | { |