]> Pileus Git - ~andy/linux/commitdiff
ore: Don't crash on NULL bio in _clear_bio
authorBoaz Harrosh <bharrosh@panasas.com>
Mon, 13 Jan 2014 17:10:40 +0000 (19:10 +0200)
committerBoaz Harrosh <bharrosh@panasas.com>
Thu, 23 Jan 2014 16:36:22 +0000 (18:36 +0200)
In the case of target returning OSD_ERR_PRI_CLEAR_PAGES when we
only sent for attributes don't crash on NULL bio.
This is an osd-target bug but don't crash regardless

Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
fs/exofs/ore.c

index 85cde3e76290c570e547d8786c01ebc17c0c95b2..dae884694bd99cd82643a5427c4981ea05c9639b 100644 (file)
@@ -431,8 +431,12 @@ int ore_check_io(struct ore_io_state *ios, ore_on_dev_error on_dev_error)
                if (likely(!ret))
                        continue;
 
-               if (OSD_ERR_PRI_CLEAR_PAGES == osi.osd_err_pri) {
-                       /* start read offset passed endof file */
+               if ((OSD_ERR_PRI_CLEAR_PAGES == osi.osd_err_pri) &&
+                   per_dev->bio) {
+                       /* start read offset passed endof file.
+                        * Note: if we do not have bio it means read-attributes
+                        * In this case we should return error to caller.
+                        */
                        _clear_bio(per_dev->bio);
                        ORE_DBGMSG("start read offset passed end of file "
                                "offset=0x%llx, length=0x%llx\n",