pgoff_t filelen_table[BATTFS_MAX_FILES];
ASSERT(dev);
- ASSERT(kblock_buffered(dev));
+ ASSERT(kblock_partialWrite(dev));
disk->dev = dev;
ASSERT(disk->dev->blk_size > BATTFS_HEADER_LEN);
/*
* Renew page only if is not in cache.
- * This avoids rewriting the same page continuously
+ * This avoids rewriting the same page continuously
* if the user code keeps writing in the same portion
* of the file.
*/
- if ((fdb->start[fdb->max_off] != kblock_cachedBlock(disk->dev)) || !kblock_cacheDirty(disk->dev))
+ if (kblock_buffered(disk->dev)
+ && ((fdb->start[fdb->max_off] != kblock_cachedBlock(disk->dev)) || !kblock_cacheDirty(disk->dev)))
{
new_page = renewPage(disk, fdb->start[fdb->max_off]);
if (new_page == NO_SPACE)
}
/* Renew page only if is not in cache. */
- if ((fdb->start[fdb->max_off] != kblock_cachedBlock(disk->dev)) || !kblock_cacheDirty(disk->dev))
+ if (kblock_buffered(disk->dev)
+ && ((fdb->start[fdb->max_off] != kblock_cachedBlock(disk->dev)) || !kblock_cacheDirty(disk->dev)))
{
new_page = renewPage(disk, fdb->start[pg_offset]);
if (new_page == NO_SPACE)
LOG_INFO("Using cached block %d\n", fdb->start[pg_offset]);
new_page = fdb->start[pg_offset];
}
-
+
curr_hdr.seq++;
}
//LOG_INFO("writing to buffer for page %d, offset %d, size %d\n", disk->curr_page, addr_offset, wr_len);