Whamcloud - gitweb
LU-9311 pfl: shouldn't reprocess done/no-op resent request 74/26474/5
authorBobi Jam <bobijam.xu@intel.com>
Mon, 10 Apr 2017 17:50:04 +0000 (01:50 +0800)
committerOleg Drokin <oleg.drokin@intel.com>
Wed, 26 Apr 2017 03:38:13 +0000 (03:38 +0000)
commit17c39f62d3b739ed9b4d4db07e57452f5c4ff863
treec9fa6347dd5edb0bce7b7000be617a5b468dbc32
parent183f0a19969ce1fc10b8bf5156beaa1fc29bbd0b
LU-9311 pfl: shouldn't reprocess done/no-op resent request

When the LOVEA buffer is bigger than the request reply buffer, the
client will resend the layout write intent RPC, and
mdt_layout_change() should not reprocess it since the 2nd process
will try to cancel the 1st granted CR lock, while client has not
get it granted yet because of the reply buffer shortage resend the
RPC.

There is another layout change resent case: the client's job has been
done by another client, referring lod_declare_layout_change -EALREADY
case, and it became a operation w/o transaction, so we should not do
the layout change, otherwise mdt_layout_change() will try to cancel
the granted server CR lock whose remote counterpart is still in hold
on the client, and a deadlock ensues.

This patch also adjusts some debug messages, makes dump_lsm() dump
uninstantiated component stripe info.

Signed-off-by: Bobi Jam <bobijam.xu@intel.com>
Change-Id: I9b063ee54d57c233eca3250502a2707997892898
Reviewed-on: https://review.whamcloud.com/26474
Reviewed-by: Niu Yawei <yawei.niu@intel.com>
Tested-by: Jenkins
Reviewed-by: Emoly Liu <emoly.liu@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/include/md_object.h
lustre/llite/vvp_io.c
lustre/lov/lov_ea.c
lustre/mdt/mdt_handler.c