Loading fs/exofs/inode.c +7 −1 Original line number Diff line number Diff line Loading @@ -54,6 +54,9 @@ struct page_collect { unsigned nr_pages; unsigned long length; loff_t pg_first; /* keep 64bit also in 32-arches */ bool read_4_write; /* This means two things: that the read is sync * And the pages should not be unlocked. */ }; static void _pcol_init(struct page_collect *pcol, unsigned expected_pages, Loading @@ -71,6 +74,7 @@ static void _pcol_init(struct page_collect *pcol, unsigned expected_pages, pcol->nr_pages = 0; pcol->length = 0; pcol->pg_first = -1; pcol->read_4_write = false; } static void _pcol_reset(struct page_collect *pcol) Loading Loading @@ -347,6 +351,7 @@ static int readpage_strip(void *data, struct page *page) if (PageError(page)) ClearPageError(page); if (!pcol->read_4_write) unlock_page(page); EXOFS_DBGMSG("readpage_strip(0x%lx, 0x%lx) empty page," " splitting\n", inode->i_ino, page->index); Loading Loading @@ -428,6 +433,7 @@ static int _readpage(struct page *page, bool is_sync) /* readpage_strip might call read_exec(,is_sync==false) at several * places but not if we have a single page. */ pcol.read_4_write = is_sync; ret = readpage_strip(&pcol, page); if (ret) { EXOFS_ERR("_readpage => %d\n", ret); Loading Loading
fs/exofs/inode.c +7 −1 Original line number Diff line number Diff line Loading @@ -54,6 +54,9 @@ struct page_collect { unsigned nr_pages; unsigned long length; loff_t pg_first; /* keep 64bit also in 32-arches */ bool read_4_write; /* This means two things: that the read is sync * And the pages should not be unlocked. */ }; static void _pcol_init(struct page_collect *pcol, unsigned expected_pages, Loading @@ -71,6 +74,7 @@ static void _pcol_init(struct page_collect *pcol, unsigned expected_pages, pcol->nr_pages = 0; pcol->length = 0; pcol->pg_first = -1; pcol->read_4_write = false; } static void _pcol_reset(struct page_collect *pcol) Loading Loading @@ -347,6 +351,7 @@ static int readpage_strip(void *data, struct page *page) if (PageError(page)) ClearPageError(page); if (!pcol->read_4_write) unlock_page(page); EXOFS_DBGMSG("readpage_strip(0x%lx, 0x%lx) empty page," " splitting\n", inode->i_ino, page->index); Loading Loading @@ -428,6 +433,7 @@ static int _readpage(struct page *page, bool is_sync) /* readpage_strip might call read_exec(,is_sync==false) at several * places but not if we have a single page. */ pcol.read_4_write = is_sync; ret = readpage_strip(&pcol, page); if (ret) { EXOFS_ERR("_readpage => %d\n", ret); Loading