From: Kinglong Mee <kinglongmee@xxxxxxxxx> Kinglong, On Tue, Nov 17, 2015 at 4:44 AM, Kinglong Mee <kinglongmee@xxxxxxxxx> wrote: > Commit 1ca843a2d2 "nfs: Fix GETATTR bitmap verification" has > check the bitmap after decoding success, but decode_attr_fs_locations > forgets cleanup the FATTR4_WORD0_FS_LOCATIONS bits. > > decode_getfattr_attrs always return -EIO when meeting FS_LOCATIONS now. > > ls: cannot access /mnt/referal: Input/output error > ls: cannot access /mnt/replicas: Input/output error > total 32 > drwxr-xr-x. 7 root root 8192 Nov 16 20:36 pnfs > ??????????? ? ? ? ? ? referal > ??????????? ? ? ? ? ? replicas > > Signed-off-by: Kinglong Mee <kinglongmee@xxxxxxxxx> this looks like the right kind of fix, I think we can clear the bit earlier in decode_attr_fs_locations though, as below. Thanks, Andreas --- fs/nfs/nfs4xdr.c | 1 + 1 file changed, 1 insertion(+) diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c index 6779feb..55b4493 100644 --- a/fs/nfs/nfs4xdr.c +++ b/fs/nfs/nfs4xdr.c @@ -3637,6 +3637,7 @@ static int decode_attr_fs_locations(struct xdr_stream *xdr, uint32_t *bitmap, st status = 0; if (unlikely(!(bitmap[0] & FATTR4_WORD0_FS_LOCATIONS))) goto out; + bitmap[0] &= ~FATTR4_WORD0_FS_LOCATIONS; status = -EIO; /* Ignore borken servers that return unrequested attrs */ if (unlikely(res == NULL)) -- 2.5.0 -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html