Whamcloud - gitweb
LU-9442 osp: can't create IDIF fid number > 0xFFFFFFFF 25/27225/6
authorSergey Cheremencev <sergey.cheremencev@seagate.com>
Thu, 15 Jun 2017 05:14:07 +0000 (08:14 +0300)
committerOleg Drokin <oleg.drokin@intel.com>
Wed, 19 Jul 2017 03:28:48 +0000 (03:28 +0000)
commit2dde01f1edac9e330f853c3ffee64eb43d82b7c1
tree9198d150b29ec1acef1b91294f5a98af10e73f6f
parent26b710a536dc58c9fa0320cdbf5f6b7ce4dc1a68
LU-9442 osp: can't create IDIF fid number > 0xFFFFFFFF

fid_is_last_id didn't recognize IDIFes. This caused OST
to allocate new sequence despite of MDT still used
initial FID_SEQ_IDIF. Finally allocation failed with -115
returned from osd_check_lma:
osd_check_lma()) lustre-OST0000-osd: FID [0x100000001:0x0:0x0] != self_fid [0x100000000:0x0:0x0]

Patch has several typical "IDIF" fixes. Also it has lov_objid
fix to store all 48 IDIF bits instead of 32.
Finally it changes union fields order in ost_id.
Before the fix oi_fid.f_seq addressed oi_id instead of oi_seq.

Change-Id: Ifbda97a5b228254aedcb050c3d94d2ecb3a9590c
Seagate-bug-id: MRP-4392
Signed-off-by: Sergey Cheremencev <sergey.cheremencev@seagate.com>
Reviewed-on: https://review.whamcloud.com/27225
Tested-by: Jenkins
Reviewed-by: Fan Yong <fan.yong@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Mike Pershin <mike.pershin@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/include/uapi/linux/lustre_fid.h
lustre/lfsck/lfsck_layout.c
lustre/osp/lproc_osp.c
lustre/osp/osp_dev.c
lustre/osp/osp_internal.h
lustre/osp/osp_object.c
lustre/osp/osp_precreate.c