Whamcloud - gitweb
LU-3536 lod: Separate thandle to different layers.
Separate thandle into different layers on MDT stack.
The current implementation use single thandle in all
layers, which might cause some issues for cross-MDT
transaction, for example during transaction stop,
it needs to stop local OSD transaction first,
then send remote RPC, because we do not want hold the
transaction, during RPC sending, but once we stop osd
transaction, which might cause this single thandle be
destroyed (see osd_trans_stop()), but all of remote
updates are still attached in this thandle.
This patch will separate the thandle to different layers:
1. MDD thandle will present itself in MDD transaction.
2. LOD thandle will distribute the thandle to all sub-thandles,
and also attach the update blob buffer to store updates for
cross-MDT operations.
3. OSP thandle will store the updates for the remote
correspondent target, and also manage to send them to the
remote target.
4. OSD thandle will still be the same as the original one,
relying on the bottom FS to achieve the "atomic".
Signed-off-by: wang di <di.wang@intel.com>
Change-Id: I0c73cc80fa692c2e5d5a09e441c28e228d822ce0
Reviewed-on: http://review.whamcloud.com/10640
Tested-by: Jenkins
Reviewed-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
25 files changed: