After recovery, orphan cleanup could race with the client unlink on
close, so the LASSERT on lu_object_is_dying() should be moved from
declare stage into the real destroy function.
Signed-off-by: Alex Zhuravlev <bzzz@whamcloud.com>
Signed-off-by: Niu Yawei <niu@whamcloud.com>
Change-Id: Ibc4ad0613d907ab98b653d5a64ce54e1f018dcb2
Reviewed-on: http://review.whamcloud.com/2083
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
oh = container_of0(th, struct osd_thandle, ot_super);
LASSERT(oh->ot_handle == NULL);
LASSERT(inode);
- LASSERT(!lu_object_is_dying(dt->do_lu.lo_header));
OSD_DECLARE_OP(oh, destroy);
OSD_DECLARE_OP(oh, delete);
oh = container_of0(th, struct osd_thandle, ot_super);
LASSERT(oh->ot_handle);
LASSERT(inode);
+ LASSERT(!lu_object_is_dying(dt->do_lu.lo_header));
if (S_ISDIR(inode->i_mode)) {
LASSERT(osd_inode_unlinked(inode) ||