hostfs: Handle page write errors correctly
[linux-2.6-block.git] / fs / hostfs / hostfs_kern.c
index cc1bc6f93a0101b6e1be37f9abf82c6cbf714af2..07881b76d42f99070c146c4e28972d94f61856af 100644 (file)
@@ -416,15 +416,15 @@ static int hostfs_writepage(struct page *page, struct writeback_control *wbc)
 
        err = write_file(HOSTFS_I(inode)->fd, &base, buffer, count);
        if (err != count) {
-               ClearPageUptodate(page);
+               if (err >= 0)
+                       err = -EIO;
+               mapping_set_error(mapping, err);
                goto out;
        }
 
        if (base > inode->i_size)
                inode->i_size = base;
 
-       if (PageError(page))
-               ClearPageError(page);
        err = 0;
 
  out: