diff options
| -rw-r--r-- | fs/exofs/ore.c | 8 | 
1 files changed, 6 insertions, 2 deletions
diff --git a/fs/exofs/ore.c b/fs/exofs/ore.c index 85cde3e76290..dae884694bd9 100644 --- a/fs/exofs/ore.c +++ b/fs/exofs/ore.c @@ -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",  | 
