Generally, for the patch series, it is better to be sent with a cover
letter to describe the content
and the background of the patch series.
Since this is your second version of the nfs disk, please mention the patch
version in the prefix of titles, like:
[PATCH v2 1/7]...
That could be done for all patches with the "-v2" option of git-send-email.

BTW, mention the changes from the previous version in the cover letter.
You can refer to
https://www.kernel.org/doc/html/latest/process/submitting-patches.html#describe-your-changes

On Wed, Dec 30, 2020 at 5:24 AM Ryan Gahagan <rgaha...@cs.utexas.edu> wrote:

> Per Issue 90, Libvirt does not support attaching an NFS disk even though
> QEMU has added support for it. This series of patches seeks to implement
> this support in Libvirt and begins by adding in flags for an NFS disk.
>
> Signed-off-by: Ryan Gahagan <rgaha...@cs.utexas.edu>
> ---
>  src/libxl/libxl_conf.c    | 1 +
>  src/libxl/xen_xl.c        | 1 +
>  src/qemu/qemu_block.c     | 3 +++
>  src/qemu/qemu_command.c   | 1 +
>  src/qemu/qemu_domain.c    | 2 ++
>  src/qemu/qemu_snapshot.c  | 3 +++
>  src/util/virstoragefile.c | 6 ++++++
>  src/util/virstoragefile.h | 1 +
>  8 files changed, 18 insertions(+)
>
> diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c
> index 00748e21e8..6a8ae27f54 100644
> --- a/src/libxl/libxl_conf.c
> +++ b/src/libxl/libxl_conf.c
> @@ -941,6 +941,7 @@ libxlMakeNetworkDiskSrcStr(virStorageSourcePtr src,
>      case VIR_STORAGE_NET_PROTOCOL_SHEEPDOG:
>      case VIR_STORAGE_NET_PROTOCOL_SSH:
>      case VIR_STORAGE_NET_PROTOCOL_VXHS:
> +    case VIR_STORAGE_NET_PROTOCOL_NFS:
>      case VIR_STORAGE_NET_PROTOCOL_LAST:
>      case VIR_STORAGE_NET_PROTOCOL_NONE:
>          virReportError(VIR_ERR_NO_SUPPORT,
> diff --git a/src/libxl/xen_xl.c b/src/libxl/xen_xl.c
> index ba0942601f..17b93d0f5c 100644
> --- a/src/libxl/xen_xl.c
> +++ b/src/libxl/xen_xl.c
> @@ -1600,6 +1600,7 @@ xenFormatXLDiskSrcNet(virStorageSourcePtr src)
>      case VIR_STORAGE_NET_PROTOCOL_SHEEPDOG:
>      case VIR_STORAGE_NET_PROTOCOL_SSH:
>      case VIR_STORAGE_NET_PROTOCOL_VXHS:
> +    case VIR_STORAGE_NET_PROTOCOL_NFS:
>      case VIR_STORAGE_NET_PROTOCOL_LAST:
>      case VIR_STORAGE_NET_PROTOCOL_NONE:
>          virReportError(VIR_ERR_NO_SUPPORT,
> diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c
> index 4640e339c0..b224a550f3 100644
> --- a/src/qemu/qemu_block.c
> +++ b/src/qemu/qemu_block.c
> @@ -1180,6 +1180,7 @@
> qemuBlockStorageSourceGetBackendProps(virStorageSourcePtr src,
>                  return NULL;
>              break;
>
> +        case VIR_STORAGE_NET_PROTOCOL_NFS:
>          case VIR_STORAGE_NET_PROTOCOL_NONE:
>          case VIR_STORAGE_NET_PROTOCOL_LAST:
>              virReportEnumRangeError(virStorageNetProtocol, src->protocol);
> @@ -2111,6 +2112,7 @@ qemuBlockGetBackingStoreString(virStorageSourcePtr
> src,
>              case VIR_STORAGE_NET_PROTOCOL_SHEEPDOG:
>              case VIR_STORAGE_NET_PROTOCOL_RBD:
>              case VIR_STORAGE_NET_PROTOCOL_VXHS:
> +            case VIR_STORAGE_NET_PROTOCOL_NFS:
>              case VIR_STORAGE_NET_PROTOCOL_SSH:
>              case VIR_STORAGE_NET_PROTOCOL_LAST:
>              case VIR_STORAGE_NET_PROTOCOL_NONE:
> @@ -2502,6 +2504,7 @@
> qemuBlockStorageSourceCreateGetStorageProps(virStorageSourcePtr src,
>          case VIR_STORAGE_NET_PROTOCOL_NBD:
>          case VIR_STORAGE_NET_PROTOCOL_ISCSI:
>          case VIR_STORAGE_NET_PROTOCOL_VXHS:
> +        case VIR_STORAGE_NET_PROTOCOL_NFS:
>          case VIR_STORAGE_NET_PROTOCOL_HTTP:
>          case VIR_STORAGE_NET_PROTOCOL_HTTPS:
>          case VIR_STORAGE_NET_PROTOCOL_FTP:
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index b06a086e18..c58f39ebf1 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -1044,6 +1044,7 @@ qemuBuildNetworkDriveStr(virStorageSourcePtr src,
>                             _("'ssh' protocol is not yet supported"));
>              return NULL;
>
> +        case VIR_STORAGE_NET_PROTOCOL_NFS:
>          case VIR_STORAGE_NET_PROTOCOL_LAST:
>          case VIR_STORAGE_NET_PROTOCOL_NONE:
>              virReportError(VIR_ERR_INTERNAL_ERROR,
> diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
> index bfb6e23942..d91c32b2c5 100644
> --- a/src/qemu/qemu_domain.c
> +++ b/src/qemu/qemu_domain.c
> @@ -9630,6 +9630,8 @@
> qemuDomainPrepareStorageSourceTLS(virStorageSourcePtr src,
>      case VIR_STORAGE_NET_PROTOCOL_FTP:
>      case VIR_STORAGE_NET_PROTOCOL_FTPS:
>      case VIR_STORAGE_NET_PROTOCOL_TFTP:
> +    case VIR_STORAGE_NET_PROTOCOL_NFS:
> +        /* Assumed NFS doesn't support TLS (needs Kerberos) */
>      case VIR_STORAGE_NET_PROTOCOL_SSH:
>          if (src->haveTLS == VIR_TRISTATE_BOOL_YES) {
>              virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c
> index 15494c3415..7e89a8839b 100644
> --- a/src/qemu/qemu_snapshot.c
> +++ b/src/qemu/qemu_snapshot.c
> @@ -413,6 +413,7 @@
> qemuSnapshotPrepareDiskExternalInactive(virDomainSnapshotDiskDefPtr
> snapdisk,
>          case VIR_STORAGE_NET_PROTOCOL_TFTP:
>          case VIR_STORAGE_NET_PROTOCOL_SSH:
>          case VIR_STORAGE_NET_PROTOCOL_VXHS:
> +        case VIR_STORAGE_NET_PROTOCOL_NFS:
>          case VIR_STORAGE_NET_PROTOCOL_LAST:
>              virReportError(VIR_ERR_INTERNAL_ERROR,
>                             _("external inactive snapshots are not
> supported on "
> @@ -501,6 +502,7 @@ qemuSnapshotPrepareDiskExternalActive(virDomainObjPtr
> vm,
>          case VIR_STORAGE_NET_PROTOCOL_TFTP:
>          case VIR_STORAGE_NET_PROTOCOL_SSH:
>          case VIR_STORAGE_NET_PROTOCOL_VXHS:
> +        case VIR_STORAGE_NET_PROTOCOL_NFS:
>          case VIR_STORAGE_NET_PROTOCOL_LAST:
>              virReportError(VIR_ERR_INTERNAL_ERROR,
>                             _("external active snapshots are not supported
> on "
> @@ -631,6 +633,7 @@ qemuSnapshotPrepareDiskInternal(virDomainDiskDefPtr
> disk,
>          case VIR_STORAGE_NET_PROTOCOL_TFTP:
>          case VIR_STORAGE_NET_PROTOCOL_SSH:
>          case VIR_STORAGE_NET_PROTOCOL_VXHS:
> +        case VIR_STORAGE_NET_PROTOCOL_NFS:
>          case VIR_STORAGE_NET_PROTOCOL_LAST:
>              virReportError(VIR_ERR_INTERNAL_ERROR,
>                             _("internal inactive snapshots are not
> supported on "
> diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c
> index fac93118fd..103dade0e7 100644
> --- a/src/util/virstoragefile.c
> +++ b/src/util/virstoragefile.c
> @@ -90,6 +90,7 @@ VIR_ENUM_IMPL(virStorageNetProtocol,
>                "tftp",
>                "ssh",
>                "vxhs",
> +              "nfs",
>  );
>
>  VIR_ENUM_IMPL(virStorageNetHostTransport,
> @@ -3152,6 +3153,7 @@
> virStorageSourceParseBackingColon(virStorageSourcePtr src,
>      case VIR_STORAGE_NET_PROTOCOL_GLUSTER:
>      case VIR_STORAGE_NET_PROTOCOL_SSH:
>      case VIR_STORAGE_NET_PROTOCOL_VXHS:
> +    case VIR_STORAGE_NET_PROTOCOL_NFS:
>          virReportError(VIR_ERR_INTERNAL_ERROR,
>                         _("malformed backing store path for protocol %s"),
>                         protocol);
> @@ -4627,6 +4629,10 @@
> virStorageSourceNetworkDefaultPort(virStorageNetProtocol protocol)
>          case VIR_STORAGE_NET_PROTOCOL_VXHS:
>              return 9999;
>
> +        case VIR_STORAGE_NET_PROTOCOL_NFS:
> +            /* Per
> https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/4/html/reference_guide/ch-nfs
> */
> +            return 2049;
> +
>          case VIR_STORAGE_NET_PROTOCOL_LAST:
>          case VIR_STORAGE_NET_PROTOCOL_NONE:
>              return 0;
> diff --git a/src/util/virstoragefile.h b/src/util/virstoragefile.h
> index 87763cf389..c5d5f0233a 100644
> --- a/src/util/virstoragefile.h
> +++ b/src/util/virstoragefile.h
> @@ -135,6 +135,7 @@ typedef enum {
>      VIR_STORAGE_NET_PROTOCOL_TFTP,
>      VIR_STORAGE_NET_PROTOCOL_SSH,
>      VIR_STORAGE_NET_PROTOCOL_VXHS,
> +    VIR_STORAGE_NET_PROTOCOL_NFS,
>
>      VIR_STORAGE_NET_PROTOCOL_LAST
>  } virStorageNetProtocol;
> --
> 2.29.2
>
>

Reply via email to