On 07/30/2018 12:02 PM, Nir Soffer wrote:
Fix issues Eric found in the original patch:
https://www.redhat.com/archives/libguestfs/2018-July/msg00072.html

- When handling ENODEV, the caller is expecting EOPNOTSUPP to trigger
   fallback.
- ENODEV should be ignored in file_trim.

Tested only on Fedora 28 and RHEL 7.5.
---
  plugins/file/file.c | 33 ++++++++++++++++++++++++---------
  1 file changed, 24 insertions(+), 9 deletions(-)


+#if defined(FALLOC_FL_PUNCH_HOLE) || defined(FALLOC_FL_ZERO_RANGE)
+static int
+do_fallocate(int fd, int mode, off_t offset, off_t len)
+{
+  int r = -1;
+  r = fallocate (fd, mode, offset, len);

Dead assignment to r in the declaration. Could merge these two lines into one. Not necessarily worth a respin just for that.

+  /* kernel 3.10 fails with ENODEV for block device. Kernel >= 4.9 fails
+     with EOPNOTSUPP in this case. Normalize errno to simplify callers. */

Comment is slightly misleading - new enough kernels coupled with decent enough block device drivers actually succeed rather than failing. But I'm fine with checking in the comment as worded.

ACK

--
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org

_______________________________________________
Libguestfs mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libguestfs

Reply via email to