CIFS: FS-Cache: Uncache unread pages in cifs_readpages() before freeing them
authorDavid Howells <dhowells@redhat.com>
Wed, 4 Sep 2013 17:10:39 +0000 (17:10 +0000)
committerSteve French <smfrench@gmail.com>
Wed, 18 Sep 2013 15:17:03 +0000 (10:17 -0500)
commit54afa99057ee2ffd3df0f5e891298bbbb65ea63c
treebbe235d0310023e4c4eace892b1de10faee13c3f
parent62d228b8c676232eca579f91cc0782b060a59097
CIFS: FS-Cache: Uncache unread pages in cifs_readpages() before freeing them

In cifs_readpages(), we may decide we don't want to read a page after all -
but the page may already have passed through fscache_read_or_alloc_pages() and
thus have marks and reservations set.  Thus we have to call
fscache_readpages_cancel() or fscache_uncache_page() on the pages we're
returning to clear the marks.

NFS, AFS and 9P should be unaffected by this as they call read_cache_pages()
which does the cleanup for you.

Signed-off-by: David Howells <dhowells@redhat.com>
Reviewed-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <smfrench@gmail.com>
fs/cifs/file.c
fs/cifs/fscache.c
fs/cifs/fscache.h