Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: src



Module Name:    src
Committed By:   dholland
Date:           Wed Aug 12 18:23:16 UTC 2015

Modified Files:
        src/libexec/lfs_cleanerd: cleaner.h coalesce.c lfs_cleanerd.c
        src/sys/ufs/lfs: lfs.h lfs_extern.h lfs_syscalls.c

Log Message:
Fix assorted 64->32 truncations related to BLOCK_INFO.

Also make note of a cleaner limitation: it seems that when it goes to
coalesce discontiguous files, it mallocs an array with one BLOCK_INFO
for every block in the file. Therefore, with 64-bit LFS, on a 32-bit
platform it will be possible to have files large enough to overflow
the cleaner's address space. Currently these will be skipped and cause
warnings via syslog.

At some point someone should rewrite the logic to coalesce files to
use chunks of some reasonable size, as discontinuity between such
chunks is immaterial and mallocing this much space is silly and
fragile. Also, the kernel only accepts up to 65536 blocks at a time
for bmapv and markv, so processing more than this at once probably
isn't useful and may not even work currently. I don't want to change
this around just now as it's not entirely trivial.


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/libexec/lfs_cleanerd/cleaner.h
cvs rdiff -u -r1.28 -r1.29 src/libexec/lfs_cleanerd/coalesce.c
cvs rdiff -u -r1.44 -r1.45 src/libexec/lfs_cleanerd/lfs_cleanerd.c
cvs rdiff -u -r1.172 -r1.173 src/sys/ufs/lfs/lfs.h
cvs rdiff -u -r1.107 -r1.108 src/sys/ufs/lfs/lfs_extern.h
cvs rdiff -u -r1.164 -r1.165 src/sys/ufs/lfs/lfs_syscalls.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.




Home | Main Index | Thread Index | Old Index