cifs: Do not take a reference to the page in cifs_readpage_worker()
authorSachin Prabhu <sprabhu@redhat.com>
Fri, 13 Sep 2013 13:11:56 +0000 (14:11 +0100)
committerSteve French <smfrench@gmail.com>
Fri, 13 Sep 2013 21:24:43 +0000 (16:24 -0500)
We do not need to take a reference to the pagecache in
cifs_readpage_worker() since the calling function will have already
taken one before passing the pointer to the page as an argument to the
function.

Signed-off-by: Sachin Prabhu <sprabhu@redhat.com>
Reviewed-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <smfrench@gmail.com>
fs/cifs/file.c

index d044b35ce228194c667c75f236b765aa9f97ad36..5f99ee551662b826ffa0048a8c14df82b6f6cc4f 100644 (file)
@@ -3379,6 +3379,9 @@ static int cifs_readpages(struct file *file, struct address_space *mapping,
        return rc;
 }
 
+/*
+ * cifs_readpage_worker must be called with the page pinned
+ */
 static int cifs_readpage_worker(struct file *file, struct page *page,
        loff_t *poffset)
 {
@@ -3390,7 +3393,6 @@ static int cifs_readpage_worker(struct file *file, struct page *page,
        if (rc == 0)
                goto read_complete;
 
-       page_cache_get(page);
        read_data = kmap(page);
        /* for reads over a certain size could initiate async read ahead */
 
@@ -3417,7 +3419,6 @@ static int cifs_readpage_worker(struct file *file, struct page *page,
 
 io_error:
        kunmap(page);
-       page_cache_release(page);
 
 read_complete:
        return rc;