Whamcloud - gitweb
LU-12586 lov: Correct write_intent end for trunc 07/35607/2
authorPatrick Farrell <pfarrell@whamcloud.com>
Wed, 24 Jul 2019 19:50:23 +0000 (15:50 -0400)
committerOleg Drokin <green@whamcloud.com>
Thu, 15 Aug 2019 07:51:12 +0000 (07:51 +0000)
commitc32c7401426d46b371fa993bba17265443fefa1b
treee805ab665fc0501c11f7f343547f3da43545f595
parent4a4ac34de42c57cf6963c95aee8da634a767b38a
LU-12586 lov: Correct write_intent end for trunc

When instantiating a layout, the server interprets the
write intent from the client as the range [start, end), not
including the last byte.

This is correct for writes because the last byte given for
a write is actually 'endpos', the resulting file pointer
position, and so is not included.

However, truncate is specifiying a size, not an endpos, so
truncate is [start, size].  To make this work with the
[start, end) processing for write_intents, we have to add
1 to the size when sending a write intent.

Without this, a truncate operation to the first byte of a
new layout component fails silently because the component
is not instantiated.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Id2b07abe73455bf1f0ed841ad08c5f381a871315
Reviewed-on: https://review.whamcloud.com/35607
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Mike Pershin <mpershin@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/lov/lov_io.c
lustre/tests/sanity-pfl.sh