Page MenuHomeFreeBSD

D26570.id77616.diff
No OneTemporary

D26570.id77616.diff

Index: sys/kern/vfs_vnops.c.sav3
===================================================================
--- sys/kern/vfs_vnops.c.sav3
+++ sys/kern/vfs_vnops.c.sav3
@@ -3009,7 +3009,7 @@
int error;
bool cantseek, readzeros, eof, lastblock;
ssize_t aresid;
- size_t copylen, len, savlen;
+ size_t copylen, len, rem, savlen;
char *dat;
long holein, holeout;
uint64_t curtime, stoptime;
@@ -3083,6 +3083,16 @@
* This value is clipped at 4Kbytes and 1Mbyte.
*/
blksize = MAX(holein, holeout);
+
+ /* Clip len to end at an exact multiple of hole size. */
+ if (blksize > 0) {
+ rem = *inoffp % blksize;
+ if (rem > 0)
+ rem = blksize - rem;
+ if (len - rem > blksize)
+ len = rounddown(len - rem, blksize) + rem;
+ }
+
if (blksize == 0)
blksize = MAX(invp->v_mount->mnt_stat.f_iosize,
outvp->v_mount->mnt_stat.f_iosize);

File Metadata

Mime Type
text/plain
Expires
Sun, Jul 19, 4:46 PM (10 h, 32 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35240644
Default Alt Text
D26570.id77616.diff (851 B)

Event Timeline