On Sun, May 28, 2017 at 06:48:38AM -0700, John Baldwin wrote:
> On Saturday, May 27, 2017 05:00:30 PM Konstantin Belousov wrote:
> >              */
> > -           if (vp->v_mount->mnt_stat.f_fsid.val[0] !=
> > -               (uint32_t)np->n_vattr.na_filesid[0])
> > -                   vap->va_fsid = (uint32_t)np->n_vattr.na_filesid[0];
> > -           else
> > -                   vap->va_fsid = (uint32_t)hash32_buf(
> > +           vn_fsid(vp, vap);
> > +           vap->va_fsid = np->n_vattr.na_filesid[0];
> > +           if (vap->va_fsid == np->n_vattr.na_filesid[0])
> > +                   vap->va_fsid = hash32_buf(
> >                         np->n_vattr.na_filesid, 2 * sizeof(uint64_t), 0);
> 
> Won't this always be true now since you've done 'a = b; if (a == b) ...'?
> Also, does the assignment to 'va_fsid' before the 'if' overwrite the work
> of vn_fsid()?

Thank you.
Indeed, the asignment should have been removed.  Below is the proposed
correction.

diff --git a/sys/fs/nfsclient/nfs_clport.c b/sys/fs/nfsclient/nfs_clport.c
index 509c38b8614..44c0eae0179 100644
--- a/sys/fs/nfsclient/nfs_clport.c
+++ b/sys/fs/nfsclient/nfs_clport.c
@@ -491,8 +491,7 @@ nfscl_loadattrcache(struct vnode **vpp, struct nfsvattr 
*nap, void *nvaper,
                 * in the mounted subtree.
                 */
                vn_fsid(vp, vap);
-               vap->va_fsid = np->n_vattr.na_filesid[0];
-               if (vap->va_fsid == np->n_vattr.na_filesid[0])
+               if ((uint32_t)vap->va_fsid == np->n_vattr.na_filesid[0])
                        vap->va_fsid = hash32_buf(
                            np->n_vattr.na_filesid, 2 * sizeof(uint64_t), 0);
        } else
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to