Whamcloud - gitweb
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>