Contract SFS-DEV-004

Overview
The goal of the CLIO Simplification Implementation contract is the implementation in the Lustre source code of the CLIO Simplification Design that resulted from [[Media:CLIOSimplificationDesign_HighLevelDesign.pdf|Project 2]] of Contract SFS-DEV-003.

For the contract statement of work, see [[Media:SFS-DEV-004_SOW.pdf|SFS-DEV-004_SOW.pdf]]

OpenSFS

 * Sarp Oral - OpenSFS Contract Administrator
 * Christopher Morrone - OpenSFS Technical Representative

Project Approval Committee (PAC)

 * Christopher Morrone - PAC Chair
 * Colin Faber
 * Patrick Farrell
 * Jason Hill
 * James Simmons
 * Cory Spitz

Intel

 * Richard Henwood - Project Manager
 * Andreas Dilger - Consulting Architect
 * Jinshan Xiong - Lead Engineer

Important Dates
The official start date of work is agreed to be October 13, 2014.

The contract lists milestone target dates in weeks relative to the start date. With the start date agreed, here we can just list actual dates to keep things easy to understand.

Meeting Minutes

 * SFS-DEV-004 Minutes 2014-11-06
 * SFS-DEV-004 Minutes 2014-12-12
 * SFS-DEV-004 Minutes 2014-01-28

cl_lock re-factoring (simplified and cache-less) DONE
LU-3259 cl_lock re-factoring The cl_lock is necessary because it communicates the DLM lock for a specific IO. The current implementation is highly complex. This work will write a simplified cl_lock. The new lock will be cache-less and replace the current implementation.

Removal of liblustre DONE
LU-2675 removal of liblustre

function calls implementation STARTED
LU-5823 Replace some obsolete obd operations with CLIO ioctl interfaceOBD API operations for read, write, setattr, getattr, etc. became obsolete after MDT, OFD and client reconstructing were completed. This work removes these redundant operations.

Function, Statuso_precreate GONEo_create Used by Echocliento_create_async GONEo_destroy Used by Echocliento_setattr Used by Echocliento_setattr_async GONEo_getattr Used by Echocliento_getattr_async GONEo_brw GONEo_merge_lvb GONEo_adjust_kms GONEo_punch GONEo_sync GONEo_migrate GONEo_copy GONEo_preprw Used by Echoclient and OST server-side codeo_commitrw Used by Echoclient and OST server-side codeo_enqueue GONEo_cancel GONEo_change_cbdata GONEo_find_cbdata GONEo_change_cbdata GONEo_extent_calc GONE

Remove lov_stripe_md (LSM) direct access beyond LOV layer STARTED
LU-5814 encapsulate lov_stripe_md (LSM) to LOV layer The current CLIO implementation has a good interface to file layout operations. Legacy code still exists that does not use this interface. The code that does not use the file layout interface will be reviewed and targeted for removal or re-design to use the file layout interface.

NOTE: struct obd_info:oi_md cannot be removed now because of inter-dependencies between clean-up patches.

Remove non-linux interfaces STARTED
Two parts

Remove some cfs_ prefixed functions. DONE
NOTE:
 * cfs_snprintf does have uses, not equivilent to snprintf, will remain.
 * cfs_hlist* are needed for Linux kernel compatibility and will remain.

Remove ccc_ layer STARTED
LU-5971 removal of ccc_ layerWith the removal of liblustre, the ccc_ layer is redundant and complex. The remaining useful functions will be merged into vfs vm posix layer and the ccc_ layer will be removed.

Cleanup obsolete OBD methods
OBD API operations for read, write, setattr, getattr, etc because obsolete after MDT, OFD and client restructuring were completed. Redundant code remains in CLIO and interfaces that are not referenced by any module will be targeted for removal.

NOTE: o_create, o_destroy are still in use by the echo code. Their LSM parameters have been removed.

004-001 CLIO ioctl's should be functions
CHANGE REQUEST: 004-001 CLIO ioctl's should be functions.

BACKGROUND: Ioctl calls were included in the CLIO Simplification design to replace some obsolete ODB operations. Alternatively, individual functions can replace the ODB operations instead.

CHANGE: Do not implement ioctl calls. Implement functions.

ACTIONS REQUIRED:
 * Ensure none of the current patches are land.
 * Update the design document with the new design.
 * Update the ticket LU-5823 with new activity.
 * Execute work to complete LU-5823.