Thanks, raised the review for it.
Regards,
Gaurav


On Wed, Dec 19, 2018 at 7:53 PM Daniel Gryniewicz <dang@redhat.com> wrote:
On 12/19/2018 07:04 AM, gaurav gangalwar wrote:
> In vfs_open2-> vfs_open2_by_handle for some cases like UNCHECKED create
> we want to set attrs_out->valid_mask to ATTR_RDATTR_ERR, so that caller
> should not rely on populated attrs_out and do getattrs to get valid attrs.
>
>          } else if (attrs_out && attrs_out->request_mask &
> ATTR_RDATTR_ERR) {
>
>                  attrs_out->valid_mask &= ATTR_RDATTR_ERR;
>
>          }
>
>
> Doing "&=" is not setting ATTR_RDATTR_ERR as valid_mask is set to 0 by
> caller. So caller will always rely on attrs_out.
> We should do "=" here.
>
>          } else if (attrs_out && attrs_out->request_mask &
> ATTR_RDATTR_ERR) {
>
>                  attrs_out->valid_mask = ATTR_RDATTR_ERR;
>
>          }
>
>
> This could happen if there is create with createmode < FSAL_EXCLUSIVE
> and file is already created with mdcache populated handle. We could end
> corrupting mdcache attrs in such case.
>

It should be |=, not &=

Daniel
_______________________________________________
Devel mailing list -- devel@lists.nfs-ganesha.org
To unsubscribe send an email to devel-leave@lists.nfs-ganesha.org