Whamcloud - gitweb
LU-1534 osd: Fix LBUGs when destroying IGIF objects
authorLi Wei <liwei@whamcloud.com>
Sun, 17 Jun 2012 05:16:47 +0000 (13:16 +0800)
committerAndreas Dilger <adilger@whamcloud.com>
Wed, 20 Jun 2012 04:53:14 +0000 (00:53 -0400)
commit3ad0df02123a49a8c98ecf4661f677af509ac6d4
tree647441ce75b2aa49e65df8f53bcdff1030cbbd9e
parentb3b8bc5dfc3122774322a8d77a2fa1f23573cef6
LU-1534 osd: Fix LBUGs when destroying IGIF objects

When destroying MDT objects with IGIF FIDs, the following assertion
may occur:

  LustreError: 28147:0:(osd_internal.h:665:osd_fid2oi()) ASSERTION(
  !fid_is_igif(fid) ) failed:
  LustreError: 28147:0:(osd_internal.h:665:osd_fid2oi()) LBUG
  Pid: 28147, comm: mdt_00

With call traces like this:

  osd_oi_delete()
  osd_object_destroy()
  mdd_object_kill()
  mdd_finish_unlink()
  mdd_unlink()

This patch fixes osd_oi_delete() to avoid trying to delete IGIF FIDs
from OI.  Also, the assertion is enhanced to print more debugging
information.

Signed-off-by: Li Wei <liwei@whamcloud.com>
Change-Id: I95fe9db8aec53a496a8dc84c87594ed81f3fe106
Signed-off-by: Li Wei <liwei@whamcloud.com>
Reviewed-on: http://review.whamcloud.com/3120
Reviewed-by: Fan Yong <yong.fan@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: Hudson
lustre/osd-ldiskfs/osd_internal.h
lustre/osd-ldiskfs/osd_oi.c