jim owens
2010-Jan-08 17:10 UTC
[RFC PATCH 00/01] Btrfs: add decompression code for direct I/O.
The following patch has the btrfs code changes/additions needed to support reading compressed data in my directio code. The code always runs in process context. The callbacks: int (*get_next_in)(struct bio_vec *vec, struct btrfs_inflate *icb); int (*get_next_out)(struct bio_vec *vec, struct btrfs_inflate *icb); track where we currently are in the compressed pages (get_next_in) and uncompressed output user pages (get_next_out). (in) is always full pages, (out) may be partial pages with offsets as the user input to direct I/O is a set of memory vectors/lengths. The callback: void (*done_with_out)(struct bio_vec *vec, struct btrfs_inflate *icb); is currently coded in directio as: static void btrfs_dio_done_with_out(struct bio_vec *ovec, struct btrfs_inflate *icb) { flush_dcache_page(ovec->bv_page); if (!PageCompound(ovec->bv_page)) set_page_dirty_lock(ovec->bv_page); page_cache_release(ovec->bv_page); } Again, this patch has no value without my directio code. jim -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html