[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