I tried to write regression test. However, Lustre client has way to determine file size on client side. So, it seems hard to reproduce the issue on client side.
I collected following messages when doing following things on Lustre without patch (all Lustre client and servers runs on the same machine):
dd if=/dev/zero of=file bs=4095 count=1
sync
echo 3 > /proc/sys/vm/drop_caches
dd if=file of=/dev/null bs=1048576
[root@server1 lustre]# grep tgt_brw_read /tmp/lustre.log | grep leaving
00000020:00000001:0.0:1446642073.288612:0:10887:0:(tgt_handler.c:1915:tgt_brw_read()) Process leaving (rc=4096 : 4096 : 1000)
[root@server1 lustre]# grep 4095 /tmp/lustre.log
00020000:00000001:0.0:1446642073.282732:0:12771:0:(lov_offset.c:68:lov_stripe_size()) Process leaving (rc=4095 : 4095 : fff)
00020000:00000001:0.0:1446642073.282733:0:12771:0:(lov_offset.c:68:lov_stripe_size()) Process leaving (rc=4095 : 4095 : fff)
00000080:00000001:1.0:1446642073.288760:0:12771:0:(file.c:1302:ll_file_aio_read()) Process leaving (rc=4095 : 4095 : fff)
00000080:00000001:1.0:1446642073.288762:0:12771:0:(file.c:1332:ll_file_read()) Process leaving (rc=4095 : 4095 : fff)
00020000:00000001:1.0:1446642073.288856:0:12771:0:(lov_offset.c:68:lov_stripe_size()) Process leaving (rc=4095 : 4095 : fff)
00020000:00000001:1.0:1446642073.288857:0:12771:0:(lov_offset.c:68:lov_stripe_size()) Process leaving (rc=4095 : 4095 : fff)
Both patches have landed for 2.8.0