summaryrefslogtreecommitdiff
path: root/fs/exofs/exofs.h
diff options
context:
space:
mode:
authorBoaz Harrosh <bharrosh@panasas.com>2011-09-28 12:04:23 +0300
committerBoaz Harrosh <bharrosh@panasas.com>2011-10-14 18:54:41 +0200
commit3bd9856857339d7ee8c4ad50030583f1b9415c39 (patch)
treefa5d950b9beffa2a10bc698d452ae50b8e195d5e /fs/exofs/exofs.h
parentbbf9a31bba8c985780fe94da059cc5813a7920f5 (diff)
downloadlwn-3bd9856857339d7ee8c4ad50030583f1b9415c39.tar.gz
lwn-3bd9856857339d7ee8c4ad50030583f1b9415c39.zip
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>
Diffstat (limited to 'fs/exofs/exofs.h')
-rw-r--r--fs/exofs/exofs.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/exofs/exofs.h b/fs/exofs/exofs.h
index 006fd6f33571..51f4b4c40f09 100644
--- a/fs/exofs/exofs.h
+++ b/fs/exofs/exofs.h
@@ -217,6 +217,7 @@ static inline void exofs_init_comps(struct ore_components *oc,
one_comp->obj.id = oid;
exofs_make_credential(one_comp->cred, &one_comp->obj);
+ oc->first_dev = 0;
oc->numdevs = sbi->layout.group_width * sbi->layout.mirrors_p1 *
sbi->layout.group_count;
oc->single_comp = EC_SINGLE_COMP;