Loading fs/nfs/nfs4proc.c +1 −1 Original line number Diff line number Diff line Loading @@ -129,7 +129,7 @@ const u32 nfs4_fsinfo_bitmap[2] = { FATTR4_WORD0_MAXFILESIZE | FATTR4_WORD0_MAXREAD | FATTR4_WORD0_MAXWRITE | FATTR4_WORD0_LEASE_TIME, 0 FATTR4_WORD1_TIME_DELTA }; const u32 nfs4_fs_locations_bitmap[2] = { Loading fs/nfs/nfs4xdr.c +21 −0 Original line number Diff line number Diff line Loading @@ -3582,6 +3582,24 @@ static int decode_attr_time_metadata(struct xdr_stream *xdr, uint32_t *bitmap, s return status; } static int decode_attr_time_delta(struct xdr_stream *xdr, uint32_t *bitmap, struct timespec *time) { int status = 0; time->tv_sec = 0; time->tv_nsec = 0; if (unlikely(bitmap[1] & (FATTR4_WORD1_TIME_DELTA - 1U))) return -EIO; if (likely(bitmap[1] & FATTR4_WORD1_TIME_DELTA)) { status = decode_attr_time(xdr, time); bitmap[1] &= ~FATTR4_WORD1_TIME_DELTA; } dprintk("%s: time_delta=%ld %ld\n", __func__, (long)time->tv_sec, (long)time->tv_nsec); return status; } static int decode_attr_time_modify(struct xdr_stream *xdr, uint32_t *bitmap, struct timespec *time) { int status = 0; Loading Loading @@ -3982,6 +4000,9 @@ static int decode_fsinfo(struct xdr_stream *xdr, struct nfs_fsinfo *fsinfo) if ((status = decode_attr_maxwrite(xdr, bitmap, &fsinfo->wtmax)) != 0) goto xdr_error; fsinfo->wtpref = fsinfo->wtmax; status = decode_attr_time_delta(xdr, bitmap, &fsinfo->time_delta); if (status != 0) goto xdr_error; status = verify_attr_len(xdr, savep, attrlen); xdr_error: Loading Loading
fs/nfs/nfs4proc.c +1 −1 Original line number Diff line number Diff line Loading @@ -129,7 +129,7 @@ const u32 nfs4_fsinfo_bitmap[2] = { FATTR4_WORD0_MAXFILESIZE | FATTR4_WORD0_MAXREAD | FATTR4_WORD0_MAXWRITE | FATTR4_WORD0_LEASE_TIME, 0 FATTR4_WORD1_TIME_DELTA }; const u32 nfs4_fs_locations_bitmap[2] = { Loading
fs/nfs/nfs4xdr.c +21 −0 Original line number Diff line number Diff line Loading @@ -3582,6 +3582,24 @@ static int decode_attr_time_metadata(struct xdr_stream *xdr, uint32_t *bitmap, s return status; } static int decode_attr_time_delta(struct xdr_stream *xdr, uint32_t *bitmap, struct timespec *time) { int status = 0; time->tv_sec = 0; time->tv_nsec = 0; if (unlikely(bitmap[1] & (FATTR4_WORD1_TIME_DELTA - 1U))) return -EIO; if (likely(bitmap[1] & FATTR4_WORD1_TIME_DELTA)) { status = decode_attr_time(xdr, time); bitmap[1] &= ~FATTR4_WORD1_TIME_DELTA; } dprintk("%s: time_delta=%ld %ld\n", __func__, (long)time->tv_sec, (long)time->tv_nsec); return status; } static int decode_attr_time_modify(struct xdr_stream *xdr, uint32_t *bitmap, struct timespec *time) { int status = 0; Loading Loading @@ -3982,6 +4000,9 @@ static int decode_fsinfo(struct xdr_stream *xdr, struct nfs_fsinfo *fsinfo) if ((status = decode_attr_maxwrite(xdr, bitmap, &fsinfo->wtmax)) != 0) goto xdr_error; fsinfo->wtpref = fsinfo->wtmax; status = decode_attr_time_delta(xdr, bitmap, &fsinfo->time_delta); if (status != 0) goto xdr_error; status = verify_attr_len(xdr, savep, attrlen); xdr_error: Loading