On 10/12/2021 09.39, Paolo Bonzini wrote:
On 12/10/21 08:53, Thomas Huth wrote:
On 02/11/2021 12.34, Paolo Bonzini wrote:
On 28/10/21 20:59, Thomas Huth wrote:
Checking for xfsctl() can be done more easily in meson.build. Also,
this is not a "real" feature like the other features that we provide
with the "--enable-xxx" and "--disable-xxx" switches for the
configure script, since this does not influence lots of code (it's
only about one call to xfsctl() in file-posix.c), so people don't
gain much with the ability to disable this with "--disable-xfsctl".
Let's rather treat this like the other cc.has_function() checks in
meson.build, i.e. don't add a new option for this in meson_options.txt.
Signed-off-by: Thomas Huth <th...@redhat.com>
I think we should just use ioctl and copy the relevant definitions from
Linux:
struct dioattr {
u32 d_mem; /* data buffer memory alignment */
u32 d_miniosz; /* min xfer size */
u32 d_maxiosz; /* max xfer size */
};
#define XFS_IOC_DIOINFO _IOR ('X', 30, struct dioattr)
I've now had a closer look at this idea, but it's getting messy: We'd
additionally also need the platform_test_xfs_fd() function that is called
from file-posix.c ...
platform_test_xfs_fd() is only used to decide whether to invoke
XFS_IOC_DIOINFO; but failures of XFS_IOC_DIOINFO are ignored anyway, so we
can get rid of is_xfs in BDRVRawState, too.
After staring at the code for a while, I wonder why we're not simply using
fstat() here instead to get the st_blksize value... wouldn't that be better
anyway since it also works with other file system types?
Thomas