LU-11579 llite: remove cl_file_inode_init() LASSERT
If there is some corruption or other reason that the file layout
cannot be used, the first call to cl_file_inode_init() will fail.
If it is called a second time on the same file then it will hit
an LASSERT() since I_NEW is no longer set on the inode.
It would be good to handle the error in lov_init_raid0() better,
but we still want to avoid this LASSERT() if there is an error.
Convert the LASSERT() in cl_file_inode_init() into a CERROR() and
error return. This is being triggered due to corruption on the
server, but that shouldn't cause the client to assert.
lov_dump_lmm_common() oid 0xdf4e:311367, magic 0x0bd10bd0
lov_dump_lmm_common() stripe_size 1048576, stripe_count 4
lov_dump_lmm_objects() stripe 0 idx 10 subobj 0x0:
151194471
lov_dump_lmm_objects() stripe 1 idx 12 subobj 0x0:
152477530
lov_dump_lmm_objects() stripe 2 idx 25 subobj 0x0:
151589797
lov_dump_lmm_objects() stripe 3 idx 2 subobj 0x0:
150332564
lov_init_raid0() fsname-clilov: OST0019 is not initialized
cl_file_inode_init() Failure to initialize cl object
[0x20004c047:0xdf4e:0x0]: -5
cl_file_inode_init() ASSERTION(inode->i_state & (1 << 3) ) failed
cl_file_inode_init() LBUG
Pid: 37233, comm: ll_sa_4709 3.10.0-862.14.4.el7.x86_64 #1 SMP
Call Trace:
libcfs_call_trace+0x8c/0xc0 [libcfs]
lbug_with_loc+0x4c/0xa0 [libcfs]
cl_file_inode_init+0x2ac/0x300 [lustre]
ll_update_inode+0x315/0x600 [lustre]
ll_iget+0x163/0x350 [lustre]
ll_prep_inode+0x232/0xc80 [lustre]
sa_handle_callback+0x3a4/0xf70 [lustre]
ll_statahead_thread+0x40e/0x2080 [lustre]
Instead, return an IO error instead of killing the client.
Lustre-change: https://review.whamcloud.com/33505
Lustre-commit:
0baa3eb1a4abe6e1e882cf03b0edfabda20142b7
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Change-Id: If8a6eb24df09e7e158b61f02e2517132893ebbe5
Reviewed-by: Patrick Farrell <paf@cray.com>
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Signed-off-by: Minh Diep <mdiep@whamcloud.com>
Reviewed-on: https://review.whamcloud.com/34302
Tested-by: Jenkins
Tested-by: Maloo <maloo@whamcloud.com>