Thanks, raised the review for it. https://review.gerrithub.io/#/c/ffilz/nfs-ganesha/+/437927/ 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