+ if (vol->bcache_size > 0 && vol->bcache == NULL) {
+ /* driver set the initial cache size */
+ status = fsw_alloc(vol->bcache_size * sizeof(struct fsw_blockcache), &vol->bcache);
+ if(status)
+ return status;
+ for (i = 0; i < vol->bcache_size; i++) {
+ vol->bcache[i].refcount = 0;
+ vol->bcache[i].cache_level = 0;
+ vol->bcache[i].phys_bno = (fsw_u64)FSW_INVALID_BNO;
+ vol->bcache[i].data = NULL;
+ }
+ i = 0;
+ goto miss;
+ }
+