History log of /src/sys/ufs/lfs/ulfs_inode.h |
Revision | | Date | Author | Comments |
1.25 |
| 17-Feb-2024 |
mlelstv | Whitespace.
|
1.24 |
| 10-Jun-2017 |
maya | Rename i_flag to i_state.
The similarity to i_flags has previously caused errors.
|
1.23 |
| 08-Jun-2017 |
chs | move some buffer cache internals declarations from buf.h to vfs_bio.c. this is needed to avoid name conflicts with ZFS and also makes it clearer that other code shouldn't be messing with these. remove the LFS debug code that poked around in bufqueues and remove the BQ_EMPTY bufqueue since nothing uses it anymore. provide a function to let LFS and wapbl read the value of nbuf for now.
|
1.22 |
| 21-Jun-2016 |
dholland | branches: 1.22.10; Revert version 1.19 (make ufid_ino in struct ulfs_ufid 64-bit) -- via a twisty maze of marginal if not illegal type punning it breaks the cleaner.
This will need to be done over, but it requires substantially more mechanism and compat ioctls. Booo.
|
1.21 |
| 20-Jun-2016 |
dholland | u_int{8,16,32,64}_t -> uint{8,16,32,64}_t in remaining lfs headers.
|
1.20 |
| 20-Jun-2016 |
dholland | Note more already-merged versions:
inode.h 1.68 is subsumed by ulfs_inode.h 1.19 inode.h 1.69-1.72 do not apply to lfs ufs_extern.h 1.74 was covered when lfs was moved to the new vnode cache ufs_extern.h 1.75 is equivalent to ulfs_extern.h 1.13 ufs_extern.h 1.76-1.77 do not apply to lfs ufsmount.h 1.42 does not apply to lfs ufs_inode.c 1.90 is subsumed by ulfs_inode.c 1.10 ufs_inode.c 1.91-1.92 do not apply to lfs ufs_lookup.c 1.130 is subsumed by ulfs_lookup.c 1.24 ufs_lookup.c 1.131 is equivalent to ulfs_lookup.c 1.20 ufs_lookup.c 1.132 is equivalent to ulfs_lookup.c 1.21 ufs_lookup.c 1.133 is equivalent to ulfs_lookup.c 1.22 ufs_lookup.c 1.134 is equivalent to ulfs_lookup.c 1.23 ufs_lookup.c 1.135 is equivalent to ulfs_lookup.c 1.25 ufs_quota2.c 1.38 is equivalent to ulfs_quota2.c 1.17 ufs_quota2.c 1.39 is equivalent to ulfs_quota2.c 1.16 ufs_quota2.c 1.40 is equivalent to ulfs_quota2.c 1.18 ufs_vfsops.c 1.53 is subsumed by lfs_vfsops.c 1.324 ufs_vfsops.c 1.54 is subsumed by lfs_vfsops.c 1.324 ufs_vnops.c 1.223-1.224 do not apply to lfs
|
1.19 |
| 20-Jun-2016 |
dholland | Merge -r1.67 of ufs/inode.h: make the inode field of a filehandle 64-bit instead of truncating to 32 bits. Note that if you're serving nfs off lfs (but I don't think you are as I think there are known fatal problems doing so) you'll need to reboot your clients after this change.
I've used a 64-bit value explicitly instead of ino_t (as in the ufs structure) because this is a structure whose size ought to be well defined. I remember some discussion of this when the ufs change was committed, but not the conclusion (if any) -- if anyone hates this it can be changed to ino_t easily enough.
|
1.18 |
| 20-Jun-2016 |
dholland | Merge ufs/inode.h 1.66: remove i_hash from struct inode. This is the hash table entry link from the old per-fs vnode cache and we don't need it any more.
|
1.17 |
| 19-Jun-2016 |
dholland | Mark ufs file versions we're already synced with.
|
1.16 |
| 01-Sep-2015 |
dholland | Use the lfs dinode accessors in place of the ufs-derived ones. (Mostly.)
The ufs-derived ones are fake structure member macros, which are gross and not very safe. Also, it seems that a lot of places in the lfs code were using the ffsv1 branch of them unconditionally, and this way it's guaranteed all those places have been updated.
Found while doing this: for non-devices, have getattr produce NODEV in the rdev field instead of leaking the address of the first direct block.
|
1.15 |
| 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.14 |
| 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.13 |
| 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.12 |
| 17-May-2014 |
dholland | branches: 1.12.2; 1.12.6; Remove the DIROP macros. They are evil, especially the CREATE ones.
This results in some duplicate logic in the creation vnops (symlink, mknod, create, mkdir) but we will probably be able to factor it out in a more sensible way later.
Now the creation vnops call getnewvnode explicitly instead of under multiple layers of obscure gunk. Then we explicitly do lfs_set_dirop, and afterwards lfs_unset_dirop.
|
1.11 |
| 18-Mar-2014 |
riastradh | branches: 1.11.2; Merge riastradh-drm2 to HEAD.
|
1.10 |
| 20-Jul-2013 |
dholland | Collect the pieces of lfs rename into lfs_rename.c, and sprinkle static.
|
1.9 |
| 18-Jun-2013 |
christos | branches: 1.9.2; 1.9.4; 1.9.6; Prefix most of the cpp macros with lfs_ and LFS_ to avoid conflicts with ffs. This was done so that boot blocks that want to compile both FFS and LFS in the same file work.
|
1.8 |
| 18-Jun-2013 |
dholland | Tuck away a bunch of symbols that don't need to be public.
|
1.7 |
| 08-Jun-2013 |
dholland | ulfs_dir.h has been emptied; remove it.
|
1.6 |
| 08-Jun-2013 |
dholland | Split the definitions suitable for userland out of ulfs_inode.h into lfs_inode.h. Since fsck_lfs, newfs_lfs, and lfs_cleanerd want to reuse the inode structure for their own internal use, and some of them share parts of the kernel code as well, the best way forward is to provide a relatively sanitized header that doesn't bring in stray material.
Shuffle a few other definitions around so that lfs_inode.h depends only on lfs.h.
Install lfs_inode.h into /usr/include.
|
1.5 |
| 06-Jun-2013 |
dholland | Cleanups to reduce symbol and header exposure: - move struct ufid from ulfs_inode.h to lfs.h - lfs.h needs sys/mount.h and sys/pool.h - ulfs_quota2_subr.c needs lfs_inode.h - remove ulfs_inode.h from lfs.h in favor of ulfs_dinode.h - move ULFS_NDADDR, ULFS_NIADDR, ULFS_NXADDR from ulfs_dinode.h to lfs.h - remove ulfs_dinode.h from lfs.h - add lfs.h to ulfs_dinode.h
|
1.4 |
| 06-Jun-2013 |
dholland | Remove stray references to ext2fs, chfs, ffs, and mfs.
|
1.3 |
| 06-Jun-2013 |
dholland | Split lfs from ufs step 4:
Massedit all ufs symbols to be "ulfs" instead, to make sure there are no conflicts with ufs. Confirmed with grep.
(This required changing a few comments that maybe should have been left alone to say "ulfs", but we'll survive that.)
|
1.2 |
| 06-Jun-2013 |
dholland | Split lfs from ufs, part 2:
Change all <ufs/ufs/foo.h> includes to <ufs/lfs/ulfs_foo.h>.
|
1.1 |
| 06-Jun-2013 |
dholland | Split lfs from ufs, part 1: cut and paste 15000 lines of ufs as "ulfs".
These are verbatim copies except that I've preserved the ufs rcsids for reference. Also, ufs/quota.h -> ulfs_quotacommon.h ufs/ufs_quota.h -> ulfs_quota.h
Splitting lfs from ufs was ok'd by core some years ago. This is not from my original tree, which became unmergeable after the several sets of quota changes; I've done the work over again over the last couple days.
|
1.9.6.1 |
| 23-Jul-2013 |
riastradh | sync with HEAD
|
1.9.4.2 |
| 18-May-2014 |
rmind | sync with head
|
1.9.4.1 |
| 28-Aug-2013 |
rmind | sync with head
|
1.9.2.4 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.9.2.3 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.9.2.2 |
| 23-Jun-2013 |
tls | resync from head
|
1.9.2.1 |
| 18-Jun-2013 |
tls | file ulfs_inode.h was added on branch tls-maxphys on 2013-06-23 06:18:39 +0000
|
1.11.2.1 |
| 10-Aug-2014 |
tls | Rebase.
|
1.12.6.3 |
| 28-Aug-2017 |
skrll | Sync with HEAD
|
1.12.6.2 |
| 09-Jul-2016 |
skrll | Sync with HEAD
|
1.12.6.1 |
| 22-Sep-2015 |
skrll | Sync with HEAD
|
1.12.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.12.2.1 |
| 17-May-2014 |
yamt | file ulfs_inode.h was added on branch yamt-pagecache on 2014-05-22 11:41:19 +0000
|
1.22.10.1 |
| 30-Oct-2017 |
snj | Pull up following revision(s) (requested by maya in ticket #330): sbin/fsck_lfs/inode.c: 1.69 sbin/fsck_lfs/lfs.c: 1.73 sbin/fsck_lfs/pass6.c: 1.50 sbin/fsck_lfs/segwrite.c: 1.46 sys/ufs/lfs/lfs.h: 1.202-1.203 sys/ufs/lfs/lfs_accessors.h: 1.48 sys/ufs/lfs/lfs_alloc.c: 1.136-1.137 sys/ufs/lfs/lfs_balloc.c: 1.94 sys/ufs/lfs/lfs_bio.c: 1.141 sys/ufs/lfs/lfs_extern.h: 1.113 sys/ufs/lfs/lfs_inode.c: 1.156-1.157 sys/ufs/lfs/lfs_inode.h: 1.20, 1.21, 1.23 sys/ufs/lfs/lfs_itimes.c: 1.20 sys/ufs/lfs/lfs_pages.c: 1.13-1.15 sys/ufs/lfs/lfs_rename.c: 1.22 sys/ufs/lfs/lfs_segment.c: 1.270-1.275 sys/ufs/lfs/lfs_subr.c: 1.94-1.97 sys/ufs/lfs/lfs_syscalls.c: 1.175 sys/ufs/lfs/lfs_vfsops.c: 1.360 sys/ufs/lfs/lfs_vnops.c: 1.316-1.321 sys/ufs/lfs/ulfs_inode.c: 1.20 sys/ufs/lfs/ulfs_inode.h: 1.24 sys/ufs/lfs/ulfs_lookup.c: 1.41 sys/ufs/lfs/ulfs_quota2.c: 1.31 sys/ufs/lfs/ulfs_readwrite.c: 1.24 sys/ufs/lfs/ulfs_vnops.c: 1.49-1.50 Update inode member i_flag --> i_state to keep up with kernel changes Move definition of IN_ALLMOD near the flag it's a mask for. Now we can see that it doesn't match all the flags, but changing that will require more careful thought. Correct confusion between i_flag and i_flags These will have to be renamed. Spotted by Riastradh, thanks! Add an XXX about the missing flags so it's not buried in a commit message. now the XXX count for LFS is 260 Rename i_flag to i_state. The similarity to i_flags has previously caused errors. Use continue to denote the no-op loop to match netbsd style newline for extra clarity. It isn't safe to drain dirops with seglock held, it'll deadlock if there are any dirops. drain before grabbing seglock. lfs_dirops == 0 is always true (as we already drained dirops), so omit that part of the comparison. Fixes a lot of LFS deadlocks. PR kern/52301 Many thanks to dholland for help analyzing coredumps Ifdef out KDASSERT which fires on my machine. Deduplicate sanity check that seglock is held on segunlock Revert r1.272 fix to PR kern/52301, the performance hit is making things unusable. change lfs_nextsegsleep and lfs_allclean_wakeup to use condvar XXX had to use lfs_lock in lfs_segwait, removed kernel_lock, is this appropriate? fix buffer overflow/KASSERT when cookies are supplied lfs no longer uses the ffs-style struct direct, use the correct minimum size from dholland XXX more wrong Consistently use {,UN}MARK_VNODE macros rather than function calls. Not much point doing anything after a panic call Ask some question about the code in a XXX comment XXX question our double-flushing of dirops Fix typo in comment
|