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"