User Details
- User Since
- Oct 24 2014, 7:17 PM (543 w, 20 h)
Thu, Mar 20
Wed, Mar 19
Fri, Mar 14
Clarify when the superblock is a copy and fix yet another Peter Holm test failure.
Update with kib comments.
Add fixes for bugs found by Peter Holm.
Fri, Mar 7
Feb 16 2025
This has been committed to head and MFC'ed to 14 and 13. It was committed to 13 in time to be part of the 13.5 distribution.
Feb 10 2025
Feb 7 2025
Feb 6 2025
I have accepted gleb's changes, so this issue is resolved.
I have gone with Gleb's fix. It is simple and as Warner has pointed out `It's the least bad outcome. We are doing ffs things, even if they are minimal.' As I have pointed out, your change breaks libufs and would require many additional changes after making the needed fixes in libufs to the clients of libufs.
Feb 1 2025
Actually, there is an even easier fix. Just move the declaration of vfs_ffs from ffs_alloc.c to ffs_subr.c. Then everything just works.
This will cause libufs to fail to build. Also, ffs_subr.c is supposed to contain all the kernel functionality needed by filesystem utilities. And ffs_oldfscompat_inode_read() is one of those functions.
Jan 31 2025
Jan 30 2025
Updates to respond to reviewer feedback,
I will follow up these comments with a new set of diffs reflecting suggested changes.
Jan 29 2025
Jan 28 2025
Jan 25 2025
Jan 24 2025
Jan 23 2025
Jan 17 2025
Committed as 661ca921e8cd56b17fc6615bc7e596e56e0e7c31
Jan 16 2025
Jan 15 2025
Jan 13 2025
These changes look correct to me. I am surprised that it has taken this long to trip over this error case.
Jan 12 2025
Jan 9 2025
I agree that -h changes the format of all numbers, So it should just be "x MB".
I largely agree with phk's analysis. SU+J does more writing than just SU (the extra writes being the journal data). Fsck runs very quickly on SSDs since random seeks do not slow it down as they do spinning rust. It would be worthwhile to run a timing test of fsck -p on a large SSD to see if it takes more than say 30 seconds but my guess is that it will not.
Dec 18 2024
Sorry, late to comment.
Nov 13 2024
Oct 12 2024
Oct 3 2024
Jul 28 2024
Sorry to be slow to comment. Like D45624, this change looks functionally correct. Again, the main issue for me is to understand what sort of workload it helps. Do you have an example benchmark whose performance is improved with this change?
Sorry to be slow to comment. This change looks functionally correct. The main issue for me is to understand what sort of workload it helps. Do you have an example benchmark whose performance is improved with this change?
Jul 27 2024
Jul 25 2024
I suspect that removing a directory with whiteouts was allowed for UFS only because not doing so would confuse most users not aware of whiteouts, as these are not printed by a regular ls. I doubt there was any other reason than that. It appears the test on WINO wasn't in 4.4BSD and was introduced in the Lite/2 commit (996c772f581f56248). Adding @mckusick as he might have some recollection of what lead to this decision.
May 22 2024
May 21 2024
I concur that this seems like a reasonable optimization.
Useful abstraction of internal state.
Better to avoid use of internal lock state.
May 16 2024
May 15 2024
This looks like the correct fix. One other unrelated nit.
Mar 17 2024
In general b_lblkno is for the use of the client of the buffer cache to use for whatever purpose they want. The b_blkno is what the underlying hardware is going to use to locate the requested data. The filesystem generally uses its BMAP routine to convert the b_lblkno to the appropriate b_blkno.
Mar 11 2024
Mar 5 2024
Feb 28 2024
Relevant parts of these changes were incorporated in commit 772430dd6795585 as discussed in PR 267654 and review https://reviews.freebsd.org/D41724.
Feb 20 2024
This does fix the problem as described in the summary.
If I understand your change, you are coming up with a different synthetic inode value to ensure that it will be unique. Presumably this value is externally visible as the "st_ino" in the stat structure and the "d_fileno" in the dirent structure. If so, this value will be different after this change so any program that has saved it somewhere could get confused. Not sure if this is really an issue though.
Feb 17 2024
Non-obvious bug, but once figured out the fix is simple and clearly correct.
Dec 17 2023
Dec 4 2023
Dec 3 2023
I would be happy to review a subsequent patch to make i_nlink a 16-bit unsigned int and move/adapt the KASSERT() checking for underflow.
Nov 28 2023
Change in-memory i_nlink to a signed 32-bit value so that can check that it has not gone negative before assigning it to the on-disk unsigned 16-bit di_nlink field.
Nov 25 2023
Nov 17 2023
Per kib suggestions:
Nov 15 2023
Comments from kib.
Nov 12 2023
Oct 28 2023
Oct 25 2023
Oct 20 2023
Oct 18 2023
Sorry, I thought I had approved this and missed your (useful) update.
Sep 8 2023
Updates reflecting comments from kib.