[Libguestfs] [PATCH v2 2/2] builder: Choose better weights in the planner.
Pino Toscano
ptoscano at redhat.com
Wed Oct 4 13:20:53 UTC 2017
On Tuesday, 3 October 2017 14:24:14 CEST Richard W.M. Jones wrote:
> ---
> builder/builder.ml | 84 +++++++++++++++++++++++++++++++++----------
Cannot comment on the actual logic in the planner, since I admit I did
not have an in-depth look at it.
> diff --git a/common/mlutils/unix_utils-c.c b/common/mlutils/unix_utils-c.c
> index 657852ef2..340fdec44 100644
> --- a/common/mlutils/unix_utils-c.c
> +++ b/common/mlutils/unix_utils-c.c
> @@ -28,10 +28,18 @@
> #include <errno.h>
> #include <sys/types.h>
>
> +#ifdef HAVE_SYS_STATFS_H
> +#include <sys/statfs.h>
> +#endif
> +
> #ifdef HAVE_SYS_STATVFS_H
> #include <sys/statvfs.h>
> #endif
>
> +#ifdef HAVE_SYS_VFS_H
> +#include <sys/vfs.h>
> +#endif
> +
> #if MAJOR_IN_MKDEV
> #include <sys/mkdev.h>
> #elif MAJOR_IN_SYSMACROS
> @@ -62,6 +70,7 @@ extern value guestfs_int_mllib_fsync_file (value filenamev);
> extern value guestfs_int_mllib_mkdtemp (value val_pattern);
> extern value guestfs_int_mllib_realpath (value pathv);
> extern value guestfs_int_mllib_statvfs_statvfs (value pathv);
> +extern value guestfs_int_mllib_statvfs_filesystem_is_remote (value pathv);
>
> /* NB: This is a "noalloc" call. */
> value
> @@ -342,3 +351,21 @@ guestfs_int_mllib_statvfs_statvfs (value pathv)
>
> CAMLreturn (rv);
> }
> +
> +/* NB: This is a "noalloc" call. */
> +value
> +guestfs_int_mllib_statvfs_filesystem_is_remote (value pathv)
> +{
> +#ifdef HAVE_STATFS
> + struct statfs buf;
> +
> + if (statfs (String_val (pathv), &buf) == -1)
> + unix_error (errno, (char *) "statvfs", pathv);
> +
> + return Val_bool (buf.f_type == 0xff534d42 /* CIFS_MAGIC_NUMBER */ ||
> + buf.f_type == 0x6969 /* NFS_SUPER_MAGIC */ ||
> + buf.f_type == 0x517b /* SMB_SUPER_MAGIC */);
Using linux/magic.h + the constants from it should avoid the hardcoded
numbers, and possibly allow more remote filesystems. Not a big issue
otherwise, anyway.
--
Pino Toscano
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part.
URL: <http://listman.redhat.com/archives/libguestfs/attachments/20171004/1e99cb16/attachment.sig>
More information about the Libguestfs
mailing list