25-akpm/fs/mpage.c | 22 ++++++++++++++-------- 1 files changed, 14 insertions(+), 8 deletions(-) diff -puN fs/mpage.c~awe-use-gfp_flags-braino fs/mpage.c --- 25/fs/mpage.c~awe-use-gfp_flags-braino Sat Aug 2 18:07:46 2003 +++ 25-akpm/fs/mpage.c Sat Aug 2 18:07:46 2003 @@ -566,10 +566,12 @@ confused: /* * The caller has a ref on the inode, so *mapping is stable */ - if (*ret == -ENOSPC) - set_bit(AS_ENOSPC, &mapping->flags); - else - set_bit(AS_EIO, &mapping->flags); + if (*ret) { + if (*ret == -ENOSPC) + set_bit(AS_ENOSPC, &mapping->flags); + else + set_bit(AS_EIO, &mapping->flags); + } out: return bio; } @@ -671,10 +673,14 @@ mpage_writepages(struct address_space *m test_clear_page_dirty(page)) { if (writepage) { ret = (*writepage)(page, wbc); - if (ret == -ENOSPC) - set_bit(AS_ENOSPC, &mapping->flags); - else - set_bit(AS_EIO, &mapping->flags); + if (ret) { + if (ret == -ENOSPC) + set_bit(AS_ENOSPC, + &mapping->flags); + else + set_bit(AS_EIO, + &mapping->flags); + } } else { bio = mpage_writepage(bio, page, get_block, &last_block_in_bio, &ret, wbc); _