aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/sg.c12
-rw-r--r--drivers/scsi/st.c10
2 files changed, 15 insertions, 7 deletions
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
index 861e51375d70..2d30b46806bf 100644
--- a/drivers/scsi/sg.c
+++ b/drivers/scsi/sg.c
@@ -1886,13 +1886,17 @@ st_unmap_user_pages(struct scatterlist *sgl, const unsigned int nr_pages,
1886 int i; 1886 int i;
1887 1887
1888 for (i=0; i < nr_pages; i++) { 1888 for (i=0; i < nr_pages; i++) {
1889 if (dirtied && !PageReserved(sgl[i].page)) 1889 struct page *page = sgl[i].page;
1890 SetPageDirty(sgl[i].page); 1890
1891 /* unlock_page(sgl[i].page); */ 1891 /* XXX: just for debug. Remove when PageReserved is removed */
1892 BUG_ON(PageReserved(page));
1893 if (dirtied)
1894 SetPageDirty(page);
1895 /* unlock_page(page); */
1892 /* FIXME: cache flush missing for rw==READ 1896 /* FIXME: cache flush missing for rw==READ
1893 * FIXME: call the correct reference counting function 1897 * FIXME: call the correct reference counting function
1894 */ 1898 */
1895 page_cache_release(sgl[i].page); 1899 page_cache_release(page);
1896 } 1900 }
1897 1901
1898 return 0; 1902 return 0;
diff --git a/drivers/scsi/st.c b/drivers/scsi/st.c
index 5eb54d8019b4..da9766283bd7 100644
--- a/drivers/scsi/st.c
+++ b/drivers/scsi/st.c
@@ -4526,12 +4526,16 @@ static int sgl_unmap_user_pages(struct scatterlist *sgl, const unsigned int nr_p
4526 int i; 4526 int i;
4527 4527
4528 for (i=0; i < nr_pages; i++) { 4528 for (i=0; i < nr_pages; i++) {
4529 if (dirtied && !PageReserved(sgl[i].page)) 4529 struct page *page = sgl[i].page;
4530 SetPageDirty(sgl[i].page); 4530
4531 /* XXX: just for debug. Remove when PageReserved is removed */
4532 BUG_ON(PageReserved(page));
4533 if (dirtied)
4534 SetPageDirty(page);
4531 /* FIXME: cache flush missing for rw==READ 4535 /* FIXME: cache flush missing for rw==READ
4532 * FIXME: call the correct reference counting function 4536 * FIXME: call the correct reference counting function
4533 */ 4537 */
4534 page_cache_release(sgl[i].page); 4538 page_cache_release(page);
4535 } 4539 }
4536 4540
4537 return 0; 4541 return 0;