cvs commit: src/sys/ufs/ffs fs.h

[ Available lists | Index of cvs-sys | Month of Oct 1996 | Week of 12 Oct 1996 | Raw email | View thread | Wrap long lines | Reply | Tag ]
From
Bruce Evans <bde>
Date
12 Oct 1996 15:14:42
Subject
cvs commit: src/sys/ufs/ffs fs.h
Message-ID
199610122212.PAA03800@freefall.freebsd.org


[ Hide this part ]
bde         96/10/12 15:12:54

Modified: sys/ufs/ffs fs.h
Log:
Fixed lblktosize(). It overflowed at 2G. This bug only affected
ufs_read() and ufs_write().

Found by: looking at warnings for comparing the result of lblktosize()
(which is usually daddr_t = long) with file sizes (which are u_quad_t
for ufs). File sizes should probably be off_t's to avoid warnings
when the are compared with file offsets, so the fixed lblktosize()
casts to off_t instead of u_quad_t.

Added definition of smalllblksize(). It is the same as the old
lblksize() and is more efficient for small block numbers on 32-bit
machines.

Use smalllblktosize() instead of its expansion in blksize() and
dblksize(). This keeps the line length short and makes it more
obvious that the shift can't overflow.

Revision Changes Path
1.7 +7 -4 src/sys/ufs/ffs/fs.h


Elapsed time: 0.128 seconds