[patch] unneeded readpage in block_symlink

Andrew Morton (akpm@zip.com.au)
Thu, 02 May 2002 11:43:28 -0700


The new consistency checks in buffer.c are complaining about
block_symlink's ->readpage against an already uptodate
page.

--- 2.5.12/fs/buffer.c~block_symlink_fix Thu May 2 10:27:42 2002
+++ 2.5.12-akpm/fs/buffer.c Thu May 2 10:30:37 2002
@@ -2155,8 +2155,12 @@ int block_symlink(struct inode *inode, c
* ->i_size will be enough for everything) and zero it out.
* OTOH it's obviously correct and should make the page up-to-date.
*/
- err = mapping->a_ops->readpage(NULL, page);
- wait_on_page_locked(page);
+ if (!PageUptodate(page)) {
+ err = mapping->a_ops->readpage(NULL, page);
+ wait_on_page_locked(page);
+ } else {
+ unlock_page(page);
+ }
page_cache_release(page);
if (err < 0)
goto fail;

I've also received a report of a dirty unmapped buffer outside
i_size with ext3. But that was against the rd.c driver, which
seems to be bust in 2.5. This will take some hunting down.

-
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/