History log of /src/sbin/dump_lfs/lfs_inode.c |
Revision | | Date | Author | Comments |
1.29 |
| 12-May-2024 |
msaitoh | s/unitialized/uninitialized/
|
1.28 |
| 15-Oct-2015 |
dholland | Make dump recognize lfs64.
For now at least it will refuse to touch it though as it needs to be taught more abstraction about directory entries; currently it blindly uses struct direct from ffs and will croak on the lfs64 64-bit inode numbers.
|
1.27 |
| 21-Sep-2015 |
dholland | Fix some assorted 32-bit assumptions not yet otherwise handled.
Also apply patch to fix the overt problem in PR 50246: newfs was calculating ifpb wrong for volumes with non-default block sizes.
|
1.26 |
| 01-Sep-2015 |
dholland | The ifile's inode number is constant. (it is always 1)
Therefore, storing the value in the superblock and reading it out again is silly and offers the opportunity for it to become corrupted. So, don't do that (most of the code already didn't) and use the existing constant instead. Initialize new 32-bit superblocks with the value for the sake of old userland programs, but don't keep the value in the 64-bit superblock at all.
(approved by Margo Seltzer)
|
1.25 |
| 12-Aug-2015 |
dholland | Hack up dinode usage to be 64 vs. 32 as needed. Part 1.
(This part changes the native lfs code; the ufs-derived code already has 64 vs. 32 logic, but as aspects of it are unsafe, and don't entirely interoperate cleanly with the lfs 64/32 stuff, pass 2 will be rehashing that.)
|
1.24 |
| 12-Aug-2015 |
dholland | Add IFILE32 and IFILE64 structures for the on-disk ifile entries. Add and use accessors. There are also a bunch of places that cast and I hope I've found them all...
|
1.23 |
| 02-Aug-2015 |
dholland | Add a (draft) 64-bit superblock. Make things build again.
Add pieces of support for using both superblock types where convenient, and specifically to the superblock accessors, but don't actually enable it anywhere.
First substantive step on PR 50000.
|
1.22 |
| 02-Aug-2015 |
dholland | Use accessor functions for the version field of the lfs superblock. I thought at first maybe the cases that test the version should be rolled into the accessors, but on the whole I think the conclusion on that is no.
|
1.21 |
| 24-Jul-2015 |
dholland | More lfs superblock accessors. (This changes the rest of the code over; all the accessors were already added.)
The difference between this commit and the previous one is arbitrary, but the previous one passed the regression tests on its own so I'm keeping it separate to help with any bisections that might be needed in the future.
|
1.20 |
| 24-Jul-2015 |
dholland | Switch to accessor functions for elements of the LFS on-disk superblock. This will allow switching between 32/64 bit forms on the fly; it will also allow handling LFS_EI reasonably tidily. (That currently doesn't work on the superblock.)
It also gets rid of cpp abuse in the form of fake structure member macros.
Also, instead of doing sleep/wakeup on &lfs_avail and &lfs_nextseg inside the on-disk superblock, add extra elements to the in-memory struct lfs for this. (XXX: these should be changed to condvars, but not right now)
XXX: this migrates a structure needed by the lfs code in libsa (struct salfs) into lfs.h, where it doesn't belong, but for the time being this is necessary in order to allow the accessors (and the various lfs macros and other goop that relies on them) to compile.
|
1.19 |
| 19-Jun-2013 |
dholland | Make this build again. hi christos
|
1.18 |
| 15-Jun-2013 |
christos | fix compilation
|
1.17 |
| 08-Jun-2013 |
dholland | Add unsafe hacks to make this build going forward.
XXX: unsafe hacks are unsafe -- dump needs to be cleaned up to make XXX: it more fs-independent.
|
1.16 |
| 22-Jan-2013 |
dholland | Stuff UFS_ in front of a few of ufs's symbols to reduce namespace pollution. Specifically: ROOTINO -> UFS_ROOTINO WINO -> UFS_WINO NXADDR -> UFS_NXADDR NDADDR -> UFS_NDADDR NIADDR -> UFS_NIADDR MAXSYMLINKLEN -> UFS_MAXSYMLINKLEN MAXSYMLINKLEN_UFS[12] -> UFS[12]_MAXSYMLINKLEN (for consistency)
Sort out ext2fs's misuse of NDADDR and NIADDR; fortunately, these have the same values in ext2fs and ffs.
No functional change intended.
|
1.15 |
| 14-Aug-2011 |
christos | branches: 1.15.2; 1.15.8; use a union to eliminate strict alias warnings.
|
1.14 |
| 20-Jul-2008 |
lukem | Remove the \n and tabs from the __COPYRIGHT() strings. (Tweak some to use a consistent format.)
|
1.13 |
| 28-Sep-2006 |
perseant | branches: 1.13.18; 1.13.22; Call fcntl on the file descriptor *before* closing it.
|
1.12 |
| 24-Jun-2006 |
perseant | Change LFCNWRAP{STOP,GO} to make them more suitable for snapshotting; in particular, the caller can now choose whether to wait for the condition to be met, and if the caller of LFCNWRAPSTOP dies or otherwise closes the descriptor, the filesystem is started again. Updated the ckckp regression test to use the new semantics.
dump_lfs(8) now uses the fcntls to implement LFS-style snapshotting through the -X flag, addressing PR#33457 albeit not using fss(4). Fixed a couple other problems with dump_lfs that manifested themselves during testing.
|
1.11 |
| 18-Jun-2005 |
lukem | be consistent in XXXGCC -Wuninitialized fixes ...
|
1.10 |
| 16-Jun-2005 |
jmc | Mark an sh3 gcc unitialized variable w. XXGCC
|
1.9 |
| 06-Feb-2005 |
perry | ANSIfy a function declaration, remove obsolete "register" declaration.
|
1.8 |
| 07-Aug-2003 |
agc | Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22308, verified by myself.
|
1.7 |
| 02-Apr-2003 |
fvdl | Add support for UFS2. UFS2 is an enhanced FFS, adding support for 64 bit block pointers, extended attribute storage, and a few other things.
This commit does not yet include the code to manipulate the extended storage (for e.g. ACLs), this will be done later.
Originally written by Kirk McKusick and Network Associates Laboratories for FreeBSD.
|
1.6 |
| 24-Jan-2003 |
fvdl | Bump daddr_t to 64 bits. Replace it with int32_t in all places where it was used on-disk, so that on-disk formats remain the same. Remove ufs_daddr_t and ufs_lbn_t for the time being.
|
1.5 |
| 25-May-2002 |
wiz | __STDC__ is always defined on NetBSD.
|
1.4 |
| 02-Nov-2001 |
lukem | fix -Wshadow warnings
|
1.3 |
| 13-Jul-2001 |
perseant | Merge the short-lived perseant-lfsv2 branch into the trunk.
Kernels and tools understand both v1 and v2 filesystems; newfs_lfs generates v2 by default. Changes for the v2 layout include:
- Segments of non-PO2 size and arbitrary block offset, so these can be matched to convenient physical characteristics of the partition (e.g., stripe or track size and offset).
- Address by fragment instead of by disk sector, paving the way for non-512-byte-sector devices. In theory fragments can be as large as you like, though in reality they must be smaller than MAXBSIZE in size.
- Use serial number and filesystem identifier to ensure that roll-forward doesn't get old data and think it's new. Roll-forward is enabled for v2 filesystems, though not for v1 filesystems by default.
- The inode free list is now a tailq, paving the way for undelete (undelete is not yet implemented, but can be without further non-backwards-compatible changes to disk structures).
- Inode atime information is kept in the Ifile, instead of on the inode; that is, the inode is never written *just* because atime was changed. Because of this the inodes remain near the file data on the disk, rather than wandering all over as the disk is read repeatedly. This speeds up repeated reads by a small but noticeable amount.
Other changes of note include:
- The ifile written by newfs_lfs can now be of arbitrary length, it is no longer restricted to a single indirect block.
- Fixed an old bug where ctime was changed every time a vnode was created. I need to look more closely to make sure that the times are only updated during write(2) and friends, not after-the-fact during a segment write, and certainly not by the cleaner.
|
1.2 |
| 01-Oct-1999 |
perseant | branches: 1.2.4; 1.2.10; Working version of aborted dump{,_lfs} join.
|
1.1 |
| 29-Sep-1999 |
perseant | Adapt dump(8) to use filestore-independent (but still ufs-specific) replacements for NINDIR, fsbtodb, etc. Create dump_lfs by adding a few LFS-filestore-specific routines. As described in PR#8317.
|
1.2.10.2 |
| 10-Jul-2001 |
perseant | Check both superblocks. If the fsb unit in the proto-superblock is > 8k, look first for the true primary superblock at fs->lfs_sboffs[0].
|
1.2.10.1 |
| 02-Jul-2001 |
perseant | Change disk addressing unit to be the fragment, instead of the disk sector. All quantities in the superblock, inodes, indirect blocks, etc. refer now to this abstract unit (called "fsb" as it is in FFS) instead of disk sectors; as a consequence segment summary blocks have to be multiples of a fragment in size. In v1 filesystems, compatibility code ensures that 1 fsb == 1 sector, regardless of fragment size.
Fragments can now range in size between 512 and 32k; in the event that LFS_LABELPAD (8k) is smaller than the disk address unit size, an extra proto-superblock is kept at 8k from the beginning of the disk, to be used *only* to locate the real superblocks. (Not all of the userland knows about this yet.)
Almost all of this was done not by me, but by joff.
|
1.2.4.1 |
| 27-Dec-1999 |
wrstuden | Pull up to last week's -current.
|
1.13.22.1 |
| 18-Sep-2008 |
wrstuden | Sync with wrstuden-revivesa-base-2.
|
1.13.18.1 |
| 28-Sep-2008 |
mjf | Sync with HEAD.
|
1.15.8.2 |
| 23-Jun-2013 |
tls | resync from head
|
1.15.8.1 |
| 25-Feb-2013 |
tls | resync with head
|
1.15.2.2 |
| 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.15.2.1 |
| 23-Jan-2013 |
yamt | sync with head
|