cifs: Do not take a reference to the page in cifs_readpage_worker()
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>wifi-calibration
parent
bdbdfdef57
commit
a9e9b7bc15
|
@ -3379,6 +3379,9 @@ static int cifs_readpages(struct file *file, struct address_space *mapping,
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* cifs_readpage_worker must be called with the page pinned
|
||||||
|
*/
|
||||||
static int cifs_readpage_worker(struct file *file, struct page *page,
|
static int cifs_readpage_worker(struct file *file, struct page *page,
|
||||||
loff_t *poffset)
|
loff_t *poffset)
|
||||||
{
|
{
|
||||||
|
@ -3390,7 +3393,6 @@ static int cifs_readpage_worker(struct file *file, struct page *page,
|
||||||
if (rc == 0)
|
if (rc == 0)
|
||||||
goto read_complete;
|
goto read_complete;
|
||||||
|
|
||||||
page_cache_get(page);
|
|
||||||
read_data = kmap(page);
|
read_data = kmap(page);
|
||||||
/* for reads over a certain size could initiate async read ahead */
|
/* 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:
|
io_error:
|
||||||
kunmap(page);
|
kunmap(page);
|
||||||
page_cache_release(page);
|
|
||||||
|
|
||||||
read_complete:
|
read_complete:
|
||||||
return rc;
|
return rc;
|
||||||
|
|
Loading…
Reference in New Issue