On Wed, Nov 2, 2011 at 3:12 PM, Corey Bryant <cor...@linux.vnet.ibm.com> wrote:
> On 11/02/2011 06:58 AM, Stefan Hajnoczi wrote:
>>
>> On Tue, Nov 1, 2011 at 5:13 PM, Corey Bryant<cor...@linux.vnet.ibm.com>
>>  wrote:
>>>
>>> +static bool has_vnet_hdr(int fd)
>>> +{
>>> +    unsigned int features = 0;
>>> +    struct ifreq ifreq;
>>> +
>>> +    if (ioctl(fd, TUNGETFEATURES,&features) == -1) {
>>> +        return false;
>>> +    }
>>> +
>>> +    if (!(features&  IFF_VNET_HDR)) {
>>> +        return false;
>>> +    }
>>> +
>>> +    if (ioctl(fd, TUNGETIFF,&ifreq) != -1 || errno != EBADFD) {
>>> +        return false;
>>> +    }
>>
>> I don't understand this expression.  We want TUNGETIFF to fail with
>> EBADFD, otherwise we return false.  What is this trying to do?
>>
>> Why do we even need TUNGETIFF after TUNGETFEATURES succeeded and we
>> were able to check out the IFF_VNET_HDR flag?
>>
>> Stefan
>>
>
> I don't think the TUNGETIFF call is necessary.  It verifies that the tap
> device doesn't already exist.  The ensuing TUNSETIFF call should already
> cover this.

Thanks for explaining.  It would be nice to comment this or drop the
if statement entirely if you are sending another revision of this
patch series.

Stefan

Reply via email to