- 论坛徽章:
- 0
|
在内核2.6.18-128中,即使申请出来地址对齐的buff,但如果这个buff没有填满(填了一部分)
还是不能写入文件,其中内核源码:
/* Check the memory alignment. Blocks cannot straddle pages */
for (seg = 0; seg < nr_segs; seg++) {
addr = (unsigned long)iov[seg].iov_base;
size = iov[seg].iov_len;
end += size;
if ((addr & blocksize_mask) || (size & blocksize_mask)) {
if (bdev)
blkbits = bdev_blkbits;
blocksize_mask = (1 << blkbits) - 1;
if ((addr & blocksize_mask) || (size & blocksize_mask))
goto out;
}
}
主要是 (addr & blocksize_mask) || (size & blocksize_mask)
那我该如何处理,让没有填满的buff写入文件中去? |
|