Whamcloud - gitweb
Damn CVS ate my nice long comment...
Changes related to "fast" LOV stripe MD storage on the MDS:
- Store small MD data inside the inode to avoid an extra seek. We don't need
the super-hack of overloading the inode delete method like we did before,
because we don't store the file size on the MDS any more, which means we
don't truncate the fake blocks from the file on unlink.
- Don't send size updates to MDS to avoid needless RPC and also avoid messing
with MD data in inode per above.
- Reduce MDS MD size by removing redundant fields and reducing the size of
others, so that it is more likely we can fit this data into the inode. We
can use the lmm_magic field to determine different stripe types, which will
probably need different data fields anyways.
This changes the ioctl interface, so I probably should create a lov_user_md
struct again, now that lov_setstripe() iocontrol exists.
- Pack MDS MD data only up to the last-allocated OST index, to make it smaller.
- Change lov_create() OST selection code (per bug 470). This wasn't strictly
related to this change, but it was in my tree and overlapping and I didn't
want to re-do the changes. It seems to work, and it will help us handle
errors that happen just at the wrong time (and also OSTs with no space/objs).
- Check MD input data more carefully.