Просмотр исходного кода

ceph: SetPageError() for writeback pages if writepages fails

Signed-off-by: Yan, Zheng <zyan@redhat.com>
Yan, Zheng 9 лет назад
Родитель
Сommit
b109eec6f4
1 измененных файлов с 3 добавлено и 1 удалено
  1. 3 1
      fs/ceph/addr.c

+ 3 - 1
fs/ceph/addr.c

@@ -626,7 +626,6 @@ static void writepages_finish(struct ceph_osd_request *req)
 	struct ceph_fs_client *fsc = ceph_inode_to_client(inode);
 	bool remove_page;
 
-
 	dout("writepages_finish %p rc %d\n", inode, rc);
 	if (rc < 0)
 		mapping_set_error(mapping, rc);
@@ -661,6 +660,9 @@ static void writepages_finish(struct ceph_osd_request *req)
 				clear_bdi_congested(&fsc->backing_dev_info,
 						    BLK_RW_ASYNC);
 
+			if (rc < 0)
+				SetPageError(page);
+
 			ceph_put_snap_context(page_snap_context(page));
 			page->private = 0;
 			ClearPagePrivate(page);