User Details
- User Since
- Oct 24 2014, 7:17 PM (611 w, 1 d)
Fri, Jul 10
Adding the VFS infrastructure for exchange is useful. Further discussion of adding exchange functionality to UFS can continue in a new review.
Wed, Jul 8
Do any file systems besides tmpfs support exchange?
Tue, Jul 7
I like the approach that you suggest. In thinking about the implementation it seems like the approach for exchange(a, b) would be:
Mon, Jul 6
Having had overnight to think through how to implement AT_RENAME_EXCHANGE in UFS, it will require a journal. If the operation is single threaded or at least kept to a bounded number in parallel, the log can be kept in an area that fits in the disk block holding the superblock. The journal entry simply needs to keep entries for the two names being exchanged. Specifically, the inode number of their resident directory, their name, and the inode number that they should reference. A flag in the superblock can indicate that the journal needs to be checked. If so, fsck can look up each name and verify that it references the correct inode number correcting it if it is wrong.
Oops, sorry, posted to the wrong phabricator review.
Having had overnight to think through how to implement AT_RENAME_EXCHANGE in UFS, it will require a journal. If the operation is single threaded or at least kept to a bounded number in parallel, the log can be kept in an area that fits in the disk block holding the superblock. The journal entry simply needs to keep entries for the two names being exchanged. Specifically, the inode number of their resident directory, their name, and the inode number that they should reference. A flag in the superblock can indicate that the journal needs to be checked. If so, fsck can look up each name and verify that it references the correct inode number correcting it if it is wrong.
This cannot be implemented in UFS since a requirement of its consistency model is that the on-disk image is always consistent. If the directory entries being swapped are in two different disk blocks, then there is no order of writing that will have a consistent filesystem. The only way to ensure consistency is to have a journal that can correct the unwritten directory name with its updated inode number.
Jun 9 2026
Your title on this phabricator review needs to be more specific. There are about 11,000 instances of EINVAL returns and you are not adding EXTERROR for all of them. So being a bit more specific about which subsystem you are doing is needed.
Jun 2 2026
Jun 1 2026
Add time check to loading of inodes in libufs per comment by Andre Albsmeier.
May 30 2026
This now looks ready to commit.
May 29 2026
Have you run your suggested tests?
Still fine with this change.
May 24 2026
This is a useful addition. I don't have an opinion on whether unsafe should be in the name.
May 17 2026
Sorry for the delay in answering. I am in a remote area of California and the power / Internet has been out since just after I sent my question. Power outages are unfortunately routine enough for you that you can work around them, me not so much.
Why does ufs_bmap_seekdata() cause a panic when it uses an unmapped buffer?
Apr 21 2026
Much more complete and useful output.
Apr 20 2026
Always glad to see more use of EXTERROR.
Apr 5 2026
This now looks complete and correct.
Apr 3 2026
You could also do something similar with the directory filling routine dir_clear_block() and the two functions that call it dir_insert() and dir_extend().
Mar 30 2026
Mar 26 2026
Mar 20 2026
Good to get the consistency.
Good to update the manual page.
Looks good. Not clear that soft updates and GEOM will not work at cross purposes with each other..
Mar 19 2026
Mar 18 2026
This time for sure!
Further error message refinement.
Mar 17 2026
Valid complaint, but not sure what the error message should be for the third case.
Update per your suggestion.
Update per kib's suggestion.
Mar 7 2026
Feb 26 2026
Feb 25 2026
If you don't have kernel strings, you need to print the long form.
Incorporate changes recommended by kib.
Feb 18 2026
This adds clarity for me.
Feb 17 2026
Looks good.
Fix some grammar nits.
Most helpful, thanks.
Jan 21 2026
Agreed, better way to do it.
Jan 12 2026
This is long overdue.
Jan 9 2026
Jan 8 2026
You do not specify what happens if both -U and -u are specified. In practice, whichever one is second wins out. I think it should be flagged as an error.
Dec 28 2025
This is a great step ahead. Looking forward to having it in production.
Coming down the home stretch. Just three more comments.
Providing the file names is a great improvement. I like the way you have automated their generation.
Everything looks good.
Dec 27 2025
Much more useful output to the user.
Dec 9 2025
This LGTM. I will commit it Dec 9th if no objections are raised.
Nov 18 2025
Nov 17 2025
Nov 14 2025
I have sent you my edit of the manual page in a separate email rather than trying to put all my comments into the above draft.
Nov 3 2025
Tried it out and had no problems and got expected errors.
Oct 31 2025
Unless anyone has further feedback, I will plan to commit this early next week.
This is an impressive performance improvement and one well worth adding to the system.
Oct 28 2025
This approach seems like the right way to get the extended errors back from the underlying devices.
Oct 26 2025
Structurally, this looks good to me. I will await Phil's commentary on its JSON/XML usefulness.
Oct 22 2025
Oct 21 2025
Respond to latest comments.
Get rid of unneeded else statement.
Oct 19 2025
Add comment on why it is not necessary to check for NULL return from prependdevtopath().
Responding to Dag-Erling's comments.
Respond to Dag-Erling's comments.
Oct 18 2025
This looks good to me, but I will await a review from Johan before proceeding.
Oct 16 2025
I will put in this change to fix the tests.
Pleas start a new review to address the additional suggestions.
Oct 14 2025
Indeed this functionality is now embodied in ffs_search.
Fix is correct. Clearly a cut & paste blunder when I wrote it.
Oct 13 2025
I note that the sshd daemon is restarted when it is reinstalled. The sshd daemon is restarted since its update may be security related and thus the security fix should take effect as soon as the updated version is available.
Oct 7 2025
First, sorry for letting this languish. Though I have not dealt with libxo, I assume that you have ensured that this generates the output that you need. Structurally it is properly added to the geom utility. If there are no issues raised by the other reviewers by Monday October 13th, I will commit it.
Sep 14 2025
Mentor approval.
Sep 11 2025
Looks ready to go.