Mercurial > illumos > illumos-gate
changeset 13795:caa31a28c302
3107 nfs4_getattr incorrectly checks bit masks
Reviewed by: Eric Schrock <eric.schrock@delphix.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
author | Vitaliy Gusev <gusev.vitaliy@nexenta.com> |
---|---|
date | Wed, 29 Aug 2012 11:37:19 -0500 |
parents | 7c5e0e746b2c |
children | 7f50f76414af |
files | usr/src/uts/common/fs/nfs/nfs4_vnops.c |
diffstat | 1 files changed, 7 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/uts/common/fs/nfs/nfs4_vnops.c Sat Sep 01 16:44:00 2012 -0400 +++ b/usr/src/uts/common/fs/nfs/nfs4_vnops.c Wed Aug 29 11:37:19 2012 -0500 @@ -22,6 +22,9 @@ * Copyright 2010 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ +/* + * Copyright 2012 Nexenta Systems, Inc. All rights reserved. + */ /* * Copyright 1983,1984,1985,1986,1987,1988,1989 AT&T. @@ -3639,14 +3642,13 @@ * call. */ if (flags & ATTR_HINT) { - if (vap->va_mask == - (vap->va_mask & (AT_SIZE | AT_FSID | AT_RDEV))) { + if (!(vap->va_mask & ~(AT_SIZE | AT_FSID | AT_RDEV))) { mutex_enter(&rp->r_statelock); - if (vap->va_mask | AT_SIZE) + if (vap->va_mask & AT_SIZE) vap->va_size = rp->r_size; - if (vap->va_mask | AT_FSID) + if (vap->va_mask & AT_FSID) vap->va_fsid = rp->r_attr.va_fsid; - if (vap->va_mask | AT_RDEV) + if (vap->va_mask & AT_RDEV) vap->va_rdev = rp->r_attr.va_rdev; mutex_exit(&rp->r_statelock); return (0);