mirror of
https://github.com/libguestfs/libguestfs.git
synced 2026-03-22 07:03:38 +00:00
daemon: fstrim: Turn "discard operation is not supported" into ENOTSUP.
Because we run the external fstrim command we don't have access to the kernel errno when it fails. However in the case where it prints this specific error message, turn that into errno ENOTSUP.
This commit is contained in:
@@ -105,7 +105,13 @@ do_fstrim (const char *path,
|
||||
|
||||
r = commandv (&out, &err, argv);
|
||||
if (r == -1) {
|
||||
reply_with_error ("%s", err);
|
||||
/* If the error is about the kernel operation not being supported
|
||||
* for this filesystem type, then return errno ENOTSUP here.
|
||||
*/
|
||||
if (strstr (err, "discard operation is not supported"))
|
||||
reply_with_error_errno (ENOTSUP, "%s", err);
|
||||
else
|
||||
reply_with_error ("%s", err);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
@@ -10851,6 +10851,10 @@ filesystem, the host filesystem, qemu and the host kernel.
|
||||
If this support isn't present it may give an error or even
|
||||
appear to run but do nothing.
|
||||
|
||||
In the case where the kernel vfs driver does not support
|
||||
trimming, this call will fail with errno set to C<ENOTSUP>.
|
||||
Currently this happens when trying to trim FAT filesystems.
|
||||
|
||||
See also C<guestfs_zero_free_space>. That is a slightly
|
||||
different operation that turns free space in the filesystem
|
||||
into zeroes. It is valid to call C<guestfs_fstrim> either
|
||||
|
||||
Reference in New Issue
Block a user