]> git.karo-electronics.de Git - karo-tx-linux.git/commit
ore: Support for partial component table
authorBoaz Harrosh <bharrosh@panasas.com>
Wed, 28 Sep 2011 09:04:23 +0000 (12:04 +0300)
committerBoaz Harrosh <bharrosh@panasas.com>
Tue, 4 Oct 2011 10:17:13 +0000 (12:17 +0200)
commitc0ba6d0454bfdc5ec5f9e63da7983c2c16d77258
treecdb8c4bd2f18d132e07ba364a8b0d79148cacc1d
parentb2e3e8de5ca6588a09d3204cf6e455ab0d4c84ef
ore: Support for partial component table

Users like the objlayout-driver would like to only pass
a partial device table that covers the IO in question.
For example exofs divides the file into raid-group-sized
chunks and only serves group_width number of devices at
a time.

The partiality is communicated by setting
ore_componets->first_dev and the array covers all logical
devices from oc->first_dev upto (oc->first_dev + oc->numdevs)

The ore_comp_dev() API receives a logical device index
and returns the actual present device in the table.
An out-of-range dev_index will BUG.

Logical device index is the theoretical device index as if
all the devices of a file are present. .i.e:
total_devs = group_width * mirror_p1 * group_count
0 <= dev_index < total_devs

Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
fs/exofs/exofs.h
fs/exofs/ore.c
include/scsi/osd_ore.h