[PATCH v3 2/3] util: Get rid of virFileFlock()

Martin Kletzander mkletzan at redhat.com
Wed Jul 29 13:07:44 UTC 2020


On Wed, Jul 29, 2020 at 02:35:01PM +0200, Ján Tomko wrote:
>On a Wednesday in 2020, Andrea Bolognani wrote:
>>On Wed, 2020-07-29 at 13:43 +0200, Martin Kletzander wrote:
>>> +++ b/src/util/virresctrl.c
>>> @@ -456,6 +456,8 @@ VIR_ONCE_GLOBAL_INIT(virResctrl);
>>>  static int
>>>  virResctrlLockWrite(void)
>>>  {
>>> +#ifndef WIN32
>>> +
>>>      int fd = open(SYSFS_RESCTRL_PATH, O_RDONLY | O_CLOEXEC);
>>>
>>>      if (fd < 0) {
>>> @@ -463,13 +465,20 @@ virResctrlLockWrite(void)
>>>          return -1;
>>>      }
>>>
>>> -    if (virFileFlock(fd, true, false) < 0) {
>>> +    if (flock(fd, LOCK_EX) < 0) {
>>>          virReportSystemError(errno, "%s", _("Cannot lock resctrl"));
>>>          VIR_FORCE_CLOSE(fd);
>>>          return -1;
>>>      }
>>>
>>>      return fd;
>>> +
>>> +#else /* WIN32 */
>>> +
>>> +    virReportSystemError(ENOSYS, "%s", _("Cannot lock resctrl"));
>>> +    return -1;
>>> +
>>> +#endif
>>>  }
>>>
>>>
>>> @@ -484,10 +493,14 @@ virResctrlUnlock(int fd)
>>>      if (VIR_CLOSE(fd) < 0) {
>>>          virReportSystemError(errno, "%s", _("Cannot close resctrl"));
>>>
>>> +#ifndef WIN32
>>> +
>>>          /* Trying to save the already broken */
>>> -        if (virFileFlock(fd, false, false) < 0)
>>> +        if (flock(fd, LOCK_UN) < 0)
>>>              virReportSystemError(errno, "%s", _("Cannot unlock resctrl"));
>>>
>>> +#endif
>>> +
>>>          return -1;
>>>      }
>>
>>So in the end you decided to go for the nuclear option :D
>>
>>I'm okay with the approach, but I would prefer if you stubbed out the
>>functions completely, eg.
>>
>
>Yes, please.
>

I guess with two functions it's fine to do it like that.  I thought it was one,
then it became two, you know the drill.

>With that, the whole series:
>
>Reviewed-by: Ján Tomko <jtomko at redhat.com>
>

Kiitos

>Jano


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20200729/d4dd2dfe/attachment-0001.sig>


More information about the libvir-list mailing list