{
        return bvec->bv_len != PAGE_SIZE;
 }
+#define ZRAM_PARTIAL_IO                1
 #else
 static inline bool is_partial_io(struct bio_vec *bvec)
 {
        struct bio_vec bvec;
 };
 
-#if PAGE_SIZE != 4096
 static void zram_sync_read(struct work_struct *work)
 {
        struct zram_work *zw = container_of(work, struct zram_work, work);
 
        return 1;
 }
-#else
-static int read_from_bdev_sync(struct zram *zram, struct bio_vec *bvec,
-                               unsigned long entry, struct bio *bio)
-{
-       WARN_ON(1);
-       return -EIO;
-}
-#endif
 
 static int read_from_bdev(struct zram *zram, struct bio_vec *bvec,
                        unsigned long entry, struct bio *parent, bool sync)
 {
        atomic64_inc(&zram->stats.bd_reads);
-       if (sync)
+       if (sync) {
+               if (WARN_ON_ONCE(!IS_ENABLED(ZRAM_PARTIAL_IO)))
+                       return -EIO;
                return read_from_bdev_sync(zram, bvec, entry, parent);
-       else
-               return read_from_bdev_async(zram, bvec, entry, parent);
+       }
+       return read_from_bdev_async(zram, bvec, entry, parent);
 }
 #else
 static inline void reset_bdev(struct zram *zram) {};