message: storage: remove deadcode from device
  Remove deadcode from device.
diff: //! one or more blob IO descriptors
  //! - [BlobPrefetchRequest](struct.BlobPrefetchRequest.html): a blob data prefetching request.
  use std::any::Any;
  -use std::cmp;
  use std::collections::hash_map::Drain;
  use std::collections::HashMap;
  use std::fmt::{Debug, Formatter};
  @@ -33,7 +32,6 @@ use arc_swap::ArcSwap;
  use fuse_backend_rs::api::filesystem::ZeroCopyWriter;
  use fuse_backend_rs::file_buf::FileVolatileSlice;
  use fuse_backend_rs::file_traits::FileReadWriteVolatile;
  -use vm_memory::bytes::Bytes;
  use nydus_api::http::FactoryConfig;
  use nydus_utils::compress;
  @@ -42,8 +40,6 @@ use nydus_utils::digest::{self, RafsDigest};
  use crate::cache::BlobCache;
  use crate::factory::BLOB_FACTORY;
  -static ZEROS: &[u8] = &[0u8; 4096]; // why 4096? volatile slice default size, unfortunately
  -
  bitflags! {
  /// Features bits for blob management.
  pub struct BlobFeatures: u32 {
  @@ -1111,30 +1107,6 @@ impl<'a> BlobDeviceIoVec<'a> {
  }
  }
  -#[allow(dead_code)]
  -impl BlobDeviceIoVec<'_> {
  - fn fill_hole(&self, bufs: &[FileVolatileSlice], size: usize) -> Result<usize, Error> {
  - let mut count: usize = 0;
  - let mut remain = size;
  -
  - for &buf in bufs.iter() {
  - let mut total = cmp::min(remain, buf.len());
  - let mut offset = 0;
  - while total > 0 {
  - let cnt = cmp::min(total, ZEROS.len());
  - buf.write_slice(&ZEROS[0..cnt], offset)
  - .map_err(|_| eio!("decompression failed"))?;
  - count += cnt;
  - remain -= cnt;
  - total -= cnt;
  - offset += cnt;
  - }
  - }
  -
  - Ok(count)
  - }
  -}
  -
  impl FileReadWriteVolatile for BlobDeviceIoVec<'_> {
  fn read_volatile(&mut self, _slice: FileVolatileSlice) -> Result<usize, Error> {
  // Skip because we don't really use it
  