summaryrefslogtreecommitdiffstats
path: root/fs/nfs/fscache.c
diff options
context:
space:
mode:
authorTrond Myklebust2010-02-08 15:32:27 +0100
committerTrond Myklebust2010-02-09 20:29:10 +0100
commit2c1740098c708b465e87637b237feb2fd98f129a (patch)
tree7794f7a904913effa4c08bf4bb1b840aba52becb /fs/nfs/fscache.c
parentMerge branch 'for-2.6.33' of git://linux-nfs.org/~bfields/linux (diff)
downloadkernel-qcow2-linux-2c1740098c708b465e87637b237feb2fd98f129a.tar.gz
kernel-qcow2-linux-2c1740098c708b465e87637b237feb2fd98f129a.tar.xz
kernel-qcow2-linux-2c1740098c708b465e87637b237feb2fd98f129a.zip
NFS: Fix a bug in nfs_fscache_release_page()
Not having an fscache cookie is perfectly valid if the user didn't mount with the fscache option. This patch fixes http://bugzilla.kernel.org/show_bug.cgi?id=15234 Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> Acked-by: David Howells <dhowells@redhat.com> Cc: stable@kernel.org
Diffstat (limited to 'fs/nfs/fscache.c')
-rw-r--r--fs/nfs/fscache.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/fs/nfs/fscache.c b/fs/nfs/fscache.c
index fa588006588d..237874f1af23 100644
--- a/fs/nfs/fscache.c
+++ b/fs/nfs/fscache.c
@@ -354,12 +354,11 @@ void nfs_fscache_reset_inode_cookie(struct inode *inode)
*/
int nfs_fscache_release_page(struct page *page, gfp_t gfp)
{
- struct nfs_inode *nfsi = NFS_I(page->mapping->host);
- struct fscache_cookie *cookie = nfsi->fscache;
-
- BUG_ON(!cookie);
-
if (PageFsCache(page)) {
+ struct nfs_inode *nfsi = NFS_I(page->mapping->host);
+ struct fscache_cookie *cookie = nfsi->fscache;
+
+ BUG_ON(!cookie);
dfprintk(FSCACHE, "NFS: fscache releasepage (0x%p/0x%p/0x%p)\n",
cookie, page, nfsi);