diff options
author | Boaz Harrosh <bharrosh@panasas.com> | 2011-09-28 11:43:09 (GMT) |
---|---|---|
committer | Boaz Harrosh <bharrosh@panasas.com> | 2011-10-04 10:13:59 (GMT) |
commit | d866d875f68fdeae63df334d291fe138dc636d96 (patch) | |
tree | 9606674db2311ab869640526ef245aaa7fbf4ea8 /fs/exofs/inode.c | |
parent | eb507bc18969f63b8968034144fd69706c492516 (diff) | |
download | linux-d866d875f68fdeae63df334d291fe138dc636d96.tar.xz |
ore/exofs: Change the type of the devices array (API change)
In the pNFS obj-LD the device table at the layout level needs
to point to a device_cache node, where it is possible and likely
that many layouts will point to the same device-nodes.
In Exofs we have a more orderly structure where we have a single
array of devices that repeats twice for a round-robin view of the
device table
This patch moves to a model that can be used by the pNFS obj-LD
where struct ore_components holds an array of ore_dev-pointers.
(ore_dev is newly defined and contains a struct osd_dev *od
member)
Each pointer in the array of pointers will point to a bigger
user-defined dev_struct. That can be accessed by use of the
container_of macro.
In Exofs an __alloc_dev_table() function allocates the
ore_dev-pointers array as well as an exofs_dev array, in one
allocation and does the addresses dance to set everything pointing
correctly. It still keeps the double allocation trick for the
inodes round-robin view of the table.
The device table is always allocated dynamically, also for the
single device case. So it is unconditionally freed at umount.
Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
Diffstat (limited to 'fs/exofs/inode.c')
0 files changed, 0 insertions, 0 deletions