Whamcloud - gitweb
LU-10810 clio: SEEK_HOLE/SEEK_DATA on client side 08/39708/16
authorMikhail Pershin <mpershin@whamcloud.com>
Fri, 21 Aug 2020 16:22:38 +0000 (19:22 +0300)
committerOleg Drokin <green@whamcloud.com>
Sat, 7 Nov 2020 08:12:37 +0000 (08:12 +0000)
commitcda353e6efae5013a26aedbe49d8aa6fb8fe456e
tree96a468b22914f58aa83a1345527fe1906cdbdabf
parent6d5fe29066af5f8e40055fd89b285853c363e947
LU-10810 clio: SEEK_HOLE/SEEK_DATA on client side

Patch introduces basic support for lseek SEEK_HOLE/SEEK_DATA
parameters in lustre client.

- introduce new IO type CIT_LSEEK in CLIO stack
- LOV splits request to all stripes involved and merges
  results back.
- OSC sends OST LSEEK RPC asynchronously
- if target doesn't support LSEEK RPC then OSC assumes
  whole related object is data with virtual hole at the end
- lseek restores released files assuming it is done prior
  the file copying.
- tool is added to request needed lseek on file
- basic tests are added in sanity, sanityn and sanity-hsm

Signed-off-by: Mikhail Pershin <mpershin@whamcloud.com>
Change-Id: I0728329d4bce71c441de581a439cde1aa873fd46
Reviewed-on: https://review.whamcloud.com/39708
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Tested-by: Oleg Drokin <green@whamcloud.com>
16 files changed:
lustre/include/cl_object.h
lustre/include/lustre_export.h
lustre/include/lustre_osc.h
lustre/llite/file.c
lustre/llite/llite_lib.c
lustre/llite/vvp_io.c
lustre/lov/lov_io.c
lustre/mdc/mdc_dev.c
lustre/obdclass/cl_io.c
lustre/osc/osc_io.c
lustre/tests/.gitignore
lustre/tests/Makefile.am
lustre/tests/lseek_test.c [new file with mode: 0644]
lustre/tests/sanity-hsm.sh
lustre/tests/sanity.sh
lustre/tests/sanityn.sh