Page MenuHomeFreeBSD

mckusick (Marshall Kirk McKusick)
User

Projects

User Details

User Since
Oct 24 2014, 7:17 PM (234 w, 1 d)

Recent Activity

Mon, Apr 15

mckusick committed rS346222: MFC of 345758.
MFC of 345758
Mon, Apr 15, 12:10 PM
mckusick committed rS346221: MFC of 345758.
MFC of 345758
Mon, Apr 15, 12:08 PM

Sat, Apr 13

mckusick committed rS346185: Followup to -r344552 in which fsck_ffs checks for a size past the.
Followup to -r344552 in which fsck_ffs checks for a size past the
Sat, Apr 13, 1:31 PM

Tue, Apr 9

mckusick added a comment to D19599: Add a UFS-specific implementation for lseek(SEEK_DATA)..

Should this now be closed since it was resolved in D19811?

Tue, Apr 9, 7:12 PM

Sun, Mar 31

mckusick committed rS345758: When using the force option to shut down a memory-disk device,.
When using the force option to shut down a memory-disk device,
Sun, Mar 31, 9:35 PM

Fri, Mar 29

mckusick committed rS345667: MFC of 343536, 345077, and 345352.
MFC of 343536, 345077, and 345352
Fri, Mar 29, 1:17 AM
mckusick committed rS345666: MFC of 343536, 345077, and 345352.
MFC of 343536, 345077, and 345352
Fri, Mar 29, 1:15 AM

Mar 20 2019

mckusick committed rS345352: This is an additional and hopefully final fix for bug report 230962..
This is an additional and hopefully final fix for bug report 230962.
Mar 20 2019, 11:11 PM

Mar 17 2019

mckusick accepted D19599: Add a UFS-specific implementation for lseek(SEEK_DATA)..

This seems like a very useful improvement.

Mar 17 2019, 12:32 AM

Mar 16 2019

mckusick added a comment to D19598: Remove incorrect comments..

I would preface the actual condition "The nbp parameter is non-NULL when the mapping is for a block that contains data, one of an external data block, a direct block, or the final block in a chain of indirect blocks." before the correct clarification "If mapping an extended attribute block, nbp must point to a buffer for that block."

Mar 16 2019, 11:49 PM

Mar 12 2019

mckusick committed rS345077: This is an additional fix for bug report 230962. When using.
This is an additional fix for bug report 230962. When using
Mar 12 2019, 7:09 PM
mckusick committed rS345044: Add KASSERT to the softdep_disk_write_complete() function in the.
Add KASSERT to the softdep_disk_write_complete() function in the
Mar 12 2019, 12:10 AM

Mar 11 2019

mckusick committed rS345043: Give more complete information in INVARIANTS panic messages at end of.
Give more complete information in INVARIANTS panic messages at end of
Mar 11 2019, 11:54 PM
mckusick committed rS345037: Update the main loop in the flushbuflist() routine to properly select.
Update the main loop in the flushbuflist() routine to properly select
Mar 11 2019, 10:42 PM
mckusick committed rS345032: Augment the UFS filesystem specific print function (called by the.
Augment the UFS filesystem specific print function (called by the
Mar 11 2019, 10:05 PM
mckusick committed rS345029: Augment DDB "show buffer" command to print the buffer's referenced.
Augment DDB "show buffer" command to print the buffer's referenced
Mar 11 2019, 9:49 PM

Mar 7 2019

mckusick accepted D19437: explain fsck -f more in detail.

Looks good, thanks for clarifying -f.

Mar 7 2019, 12:15 AM
mckusick committed rS344864: MFC of 344731.
MFC of 344731
Mar 7 2019, 12:04 AM
mckusick committed rS344863: MFC of 344731.
MFC of 344731
Mar 7 2019, 12:02 AM
mckusick committed rS344861: MFC of 344552 and 344732.
MFC of 344552 and 344732
Mar 7 2019, 12:00 AM

Mar 6 2019

mckusick committed rS344860: MFC of 344552 and 344732.
MFC of 344552 and 344732
Mar 6 2019, 11:55 PM

Mar 3 2019

mckusick added a comment to D19437: explain fsck -f more in detail.

Your change looks good. I'll approve once you update the suggested mandoc refinement.

Mar 3 2019, 9:28 PM

Mar 2 2019

mckusick committed rS344732: Properly calculate the last used logical block of a file when checking.
Properly calculate the last used logical block of a file when checking
Mar 2 2019, 9:30 PM
mckusick committed rS344731: The size of the UFS soft-updates journal must be a multiple of the.
The size of the UFS soft-updates journal must be a multiple of the
Mar 2 2019, 9:23 PM

Mar 1 2019

mckusick added a comment to D19325: Do not panic if inode bitmap is corrupted..

I recently added the new error EINTEGRITY which is intended for use when a cylinder group or other filesystem structure has an integrity error. My initial plan is to use it for check-hash failures, but this is another good place to use it. It means that the callers of the functions that return this error need to be prepared to handle it. Specifically when allocating blocks or files trying to allocate from a different cylinder group. When deleting blocks or files, not immediately giving up, but trying to release all the remaining blocks of the file. A similar analysis would need to be used for this error (notably trying to allocate from a different cylinder group).

Mar 1 2019, 1:15 AM
mckusick added a comment to D18586: mount(8) does not handle "update" option in the fstab(5) correctly.

The addition to fstab.5 is helpful, but slightly incomplete in that it is not clear in what context the update keyword would be used.I would add text at the end of your new block that says something like:
The
.Dq update
option is typically used in conjuction with two
.Nm
files.
The first
.Nm
file is used to set up the initial set of file systems.
The second
.Nm
file is then run to update the initial set of file systems and
to add additional file systems.

Mar 1 2019, 12:54 AM

Feb 25 2019

mckusick committed rS344552: After a crash, a file that extends into indirect blocks may end up.
After a crash, a file that extends into indirect blocks may end up
Feb 25 2019, 9:58 PM

Feb 19 2019

mckusick committed rS344302: Ensure that inode updates are properly flushed out during the first.
Ensure that inode updates are properly flushed out during the first
Feb 19 2019, 8:12 PM

Jan 28 2019

mckusick added a comment to D18991: Add dash as a valid characterl to UFS label name.

Note that update of manual page date fell out on corrective update.

Jan 28 2019, 10:00 PM
mckusick accepted D18991: Add dash as a valid characterl to UFS label name.

Looks good.

Jan 28 2019, 9:56 PM
mckusick committed rS343538: MFC of 343449 and 343483.
MFC of 343449 and 343483
Jan 28 2019, 9:48 PM
mckusick committed rS343537: MFC of 343449 and 343483.
MFC of 343449 and 343483
Jan 28 2019, 9:46 PM
mckusick committed rS343536: This bug was introduced with the change to use softdep_bp_to_mp() in.
This bug was introduced with the change to use softdep_bp_to_mp() in
Jan 28 2019, 9:37 PM

Jan 27 2019

mckusick requested changes to D18991: Add dash as a valid characterl to UFS label name.

As noted, date at top of manual pages needs to be updated (which I will admit, I failed to do when I added underscores).

Jan 27 2019, 9:03 PM

Jan 26 2019

mckusick committed rS343483: Update tunefs and newfs error messages for the -L (volume label) option.
Update tunefs and newfs error messages for the -L (volume label) option
Jan 26 2019, 10:27 PM
mckusick committed rS343462: Expand DDB's set of printable soft dependency data structures. The.
Expand DDB's set of printable soft dependency data structures. The
Jan 26 2019, 5:35 AM

Jan 25 2019

mckusick committed rS343457: Add printing of b_ioflags to DDB `show buffer' command..
Add printing of b_ioflags to DDB `show buffer' command.
Jan 25 2019, 9:24 PM
mckusick committed rS343449: Allow tunefs to include '_' as a legal character in label names.
Allow tunefs to include '_' as a legal character in label names
Jan 25 2019, 8:07 PM

Jan 17 2019

mckusick committed rS343115: Truely fix #if defined broken in -r343111.
Truely fix #if defined broken in -r343111
Jan 17 2019, 4:27 PM
mckusick committed rS343114: Proper definition of elast3..
Proper definition of elast3.
Jan 17 2019, 3:42 PM
mckusick committed rS343113: Fix #if defined broken in -r343111.
Fix #if defined broken in -r343111
Jan 17 2019, 3:35 PM
mckusick committed rS343111: Create new EINTEGRITY error with message "Integrity check failed"..
Create new EINTEGRITY error with message "Integrity check failed".
Jan 17 2019, 6:36 AM
mckusick closed D18765: Add EINTEGRITY as new error number.
Jan 17 2019, 6:36 AM

Jan 11 2019

mckusick updated the diff for D18765: Add EINTEGRITY as new error number.

Update the intro(2) manual page to better reflect the meaning as suggested by imp, cem, etal.

Jan 11 2019, 11:11 PM

Jan 10 2019

mckusick added a comment to D18765: Add EINTEGRITY as new error number.
In D18765#401317, @imp wrote:

At a minimum EINTEGRITY is useful for mount since it allows the mount command to notify the user that the mount failed because of an integrity error which very likely can be fixed with a run of fsck versus an I/O error which probably cannot.

We should make mount return a different exit value for this perhaps... We could use that to automate a running of fsck in some cases.
EINTEGRITY means the end-to-end notion of what should be there isn't. This is similar to EIO (can't read the sector). The integrity error, though, means that some can't fail sanity check failed, which is a larger class of errors.

Jan 10 2019, 4:57 AM
mckusick added a comment to D18765: Add EINTEGRITY as new error number.

At a minimum EINTEGRITY is useful for mount since it allows the mount command to notify the user that the mount failed because of an integrity error which very likely can be fixed with a run of fsck versus an I/O error which probably cannot.

Jan 10 2019, 12:21 AM
mckusick updated the diff for D18765: Add EINTEGRITY as new error number.

Based on feedback from Ed Maste and Ed Schouten do not add EINTEGRITY to CloudABI. Rather map it to EINVAL as is done in Linux compatibility.

Jan 10 2019, 12:13 AM

Jan 9 2019

mckusick added a comment to D18765: Add EINTEGRITY as new error number.

It is useful to the application or user to distinguish EINTEGRITY from EIO. With EIO they know that the underlying media has failed and there is really nothing they can do. With EINTEGRITY the individual file has become corrupted, but if they still have its contents, they can remove it and rewrite it as the filesystem media itself is still working. Alternatively they can request the system administrator to run a check of the filesystem to attempt to clean up the file.

Jan 9 2019, 11:48 PM
mckusick added a comment to D18765: Add EINTEGRITY as new error number.

Mount is just one of the places that can return EINTEGRITY. It can also come back when accessing a file or directory whose meta information fails a check-hash.

Jan 9 2019, 11:40 PM

Jan 8 2019

mckusick updated the diff for D18765: Add EINTEGRITY as new error number.

Update diffs based on reviewer comments:
gnn - corrections to File05 cddl/lib/libdtrace/errno.d
dim - drop unneeded changes to sanitizer, previously File14 and File15
Drop dteske as reviewer as gnn has reviewed the DTrace change

Jan 8 2019, 10:56 PM
mckusick added a comment to D18765: Add EINTEGRITY as new error number.

When a mount fails because of a hash-check failure it is helpful to get "Integrity check failed" rather than "Invalid Argument" back. There are numerous reasons that you can get "Invalid argument" including miss-typed disk or mount-point names and other administrative errors. Knowing that it was due to an integrity check gives a strong indication that a run of fsck is needed. Actually in the case of mount we have the ability to print a more complete message, but the low-level functions in the filesystems need to be able to return something other than EINVAL so that the mount-layer function can know how to formulate its error message.

Jan 8 2019, 7:47 AM
mckusick added a comment to D18765: Add EINTEGRITY as new error number.
In D18765#400620, @dim wrote:

The libc++ changes look OK to me, and I'll take care of sending them upstream.

Jan 8 2019, 7:34 AM

Jan 7 2019

mckusick added a comment to D18765: Add EINTEGRITY as new error number.
In D18765#400403, @cem wrote:

This proposal is to create a new EINTEGRITY error number. EINTEGRITY's purpose is to respond to errors where an integrity check such as a check-hash or a cross-correlation has failed. For example, an uncorrectable error has been found in a filesystem or a disk subsystem such as gmirror(8) or graid3(8).

How do you envision making use of this error code? Does it meaningfully differ from EIO? In the case of gmirror in particular, AFAIK it cannot determine bitrot and relies on the underlying volume to signal a bad block with EIO (which it then restarts on any remaining component, I think).
(I believe we could use a tighter integration between UFS and underlying geoms like gmirror/graid, I'm just not sure how this error number fits in to that.)
Thanks!
I'll take a look at the lua bits soon.

Jan 7 2019, 6:06 AM
mckusick created D18765: Add EINTEGRITY as new error number.
Jan 7 2019, 2:12 AM

Jan 6 2019

mckusick accepted D18763: Avoid overflow in vtruncbuf().
Jan 6 2019, 11:26 PM
mckusick committed rS342821: MFC of 342135 and 342290.
MFC of 342135 and 342290
Jan 6 2019, 10:50 PM
mckusick committed rS342820: MFC of 342135 and 342290.
MFC of 342135 and 342290
Jan 6 2019, 10:49 PM
mckusick committed rS342819: MFC of 342548.
MFC of 342548
Jan 6 2019, 10:35 PM
mckusick committed rS342818: MFC of 342548.
MFC of 342548
Jan 6 2019, 10:30 PM

Dec 30 2018

mckusick committed rD52737: Update my PGP key..
Update my PGP key.
Dec 30 2018, 6:39 AM
mckusick committed rS342610: Move ASSERT_VOP_LOCKED to top of ufs_vinit() as it should be true.
Move ASSERT_VOP_LOCKED to top of ufs_vinit() as it should be true
Dec 30 2018, 6:03 AM
mckusick committed rS342609: For consistency with FFS2's fifoops2 and both versions of FFS's.
For consistency with FFS2's fifoops2 and both versions of FFS's
Dec 30 2018, 5:03 AM

Dec 27 2018

mckusick accepted D18656: Bump sys_errlist size to keep ABI backward-compatible for some time..

This change now looks good to me.

Dec 27 2018, 7:36 AM
mckusick committed rS342548: When loading an inode from disk, verify that its mode is valid..
When loading an inode from disk, verify that its mode is valid.
Dec 27 2018, 7:19 AM

Dec 21 2018

mckusick committed rS342290: Some filesystems (like cd9660 and ext3) require that VFS_STATFS().
Some filesystems (like cd9660 and ext3) require that VFS_STATFS()
Dec 21 2018, 1:09 AM

Dec 20 2018

mckusick added a comment to D18586: mount(8) does not handle "update" option in the fstab(5) correctly.

Given that this plausibly works only with two different /etc/fstab files, I think your change should also include an update to the manual page to explain how the update keyword is intended to be used.

Dec 20 2018, 6:51 AM

Dec 17 2018

mckusick added a comment to D18586: mount(8) does not handle "update" option in the fstab(5) correctly.

This change does not seem wrong, though the only way I can see it being usable is to have the read-only mount's in /etc/fstab, then a special fstab that has the desired update mount lines in it. Because if the update mount's are in /etc/fstab, then for 'mount -a' the read-only mount will happen immediately followed by the read-write mount. Though I suppose that the update mount line could appear first (and fail) followed by the read-only mount which would presumably succeed. Then on the second 'mount -a' the update would succeed and the read-only would be skipped because it was already mounted. But this seems like a really obscure way of doing things. Plus you would have to change mount so that would not exit when the initial "ro,update" failed.

Dec 17 2018, 11:23 PM

Dec 15 2018

mckusick committed rS342136: Clarify panic in set_rootvnode()..
Clarify panic in set_rootvnode().
Dec 15 2018, 7:19 PM
mckusick committed rS342135: Under UFS/FFS the VFS_ROOT() function will return an error if the inode.
Under UFS/FFS the VFS_ROOT() function will return an error if the inode
Dec 15 2018, 7:05 PM
mckusick committed rS342134: Ensure that the inode check-hash is not left zeroed out in the case where.
Ensure that the inode check-hash is not left zeroed out in the case where
Dec 15 2018, 6:49 PM
mckusick committed rS342133: Reorder ffs_verify_dinode_ckhash() so that it checks the inode check-hash.
Reorder ffs_verify_dinode_ckhash() so that it checks the inode check-hash
Dec 15 2018, 6:36 PM
mckusick committed rS342129: Must set ip->i_effnlink = ip->i_nlink to avoid a soft updates.
Must set ip->i_effnlink = ip->i_nlink to avoid a soft updates
Dec 15 2018, 5:58 PM
mckusick committed rS342128: Fsck would find, report, and offer to fix inode check-hash failures..
Fsck would find, report, and offer to fix inode check-hash failures.
Dec 15 2018, 5:33 PM

Dec 11 2018

mckusick committed rS341836: Continuing efforts to provide hardening of FFS. This change adds a.
Continuing efforts to provide hardening of FFS. This change adds a
Dec 11 2018, 10:15 PM

Dec 6 2018

mckusick committed rS341611: If the vfs.ffs.dotrimcons sysctl option is enabled while a file.
If the vfs.ffs.dotrimcons sysctl option is enabled while a file
Dec 6 2018, 1:05 AM
mckusick committed rS341608: Normally when an attempt is made to mount a UFS/FFS filesystem whose.
Normally when an attempt is made to mount a UFS/FFS filesystem whose
Dec 6 2018, 12:10 AM

Dec 5 2018

mckusick committed rS341510: Ensure that cylinder-group check-hashes are properly updated when first.
Ensure that cylinder-group check-hashes are properly updated when first
Dec 5 2018, 6:32 AM

Dec 3 2018

mckusick added inline comments to D18351: Add BIO_SPEEDUP.
Dec 3 2018, 1:19 AM

Dec 2 2018

mckusick added inline comments to D18351: Add BIO_SPEEDUP.
Dec 2 2018, 11:49 PM

Nov 29 2018

mckusick accepted D18351: Add BIO_SPEEDUP.

This now looks reasonable to me.

Nov 29 2018, 12:49 AM
mckusick accepted D17586: Make fsck(8) use pread(2).

This now looks good to me. I concur with kib's followup comments.

Nov 29 2018, 12:33 AM

Nov 27 2018

mckusick requested changes to D18351: Add BIO_SPEEDUP.

Generally this looks reasonable.

Nov 27 2018, 6:12 AM

Nov 26 2018

mckusick committed rS341004: Bring up to date with recently added functions berase(3), getinode(3),.
Bring up to date with recently added functions berase(3), getinode(3),
Nov 26 2018, 11:10 PM
mckusick committed rS340927: Move the check for the filesystem having been run on a kernel that.
Move the check for the filesystem having been run on a kernel that
Nov 26 2018, 1:00 AM

Nov 25 2018

mckusick committed rS340925: Properly recover from superblock check-hash failures. Specifically,.
Properly recover from superblock check-hash failures. Specifically,
Nov 25 2018, 6:11 PM
mckusick committed rS340924: Calculate updated superblock check-hash before writing it into the snapshot..
Calculate updated superblock check-hash before writing it into the snapshot.
Nov 25 2018, 6:01 PM

Nov 14 2018

mckusick committed rS340422: Fix build break from dump incompatibility I introduced in -r340411.
Fix build break from dump incompatibility I introduced in -r340411
Nov 14 2018, 12:22 AM

Nov 13 2018

mckusick committed rS340411: In preparation for adding inode check-hashes, clean up and.
In preparation for adding inode check-hashes, clean up and
Nov 13 2018, 9:41 PM

Nov 12 2018

mckusick accepted D17917: d_off support for multiple filesystems.

OK, keeping it as currently specified is fine. I was concerned that using it as an lseek parameter might be an issue for ZFS,and OneFS, but given that it appears that these filesystems are fine with that tells me that the above implementation works fine.

Nov 12 2018, 10:49 PM
mckusick added a comment to D17917: d_off support for multiple filesystems.

My intent when adding the d_off field was that it be used for this purpose, so I am glad to see someone actually making it happen.

Nov 12 2018, 9:02 PM

Nov 1 2018

mckusick committed rS339983: In preparation for adding inode check-hashes, convert the clri(8).
In preparation for adding inode check-hashes, convert the clri(8)
Nov 1 2018, 3:39 AM

Oct 31 2018

mckusick committed rS339941: In preparation for adding inode check-hashes, change the fsck_ffs.
In preparation for adding inode check-hashes, change the fsck_ffs
Oct 31 2018, 5:18 AM

Oct 23 2018

mckusick committed rS339671: Continuing efforts to provide hardening of FFS, this change adds a.
Continuing efforts to provide hardening of FFS, this change adds a
Oct 23 2018, 9:13 PM

Oct 19 2018

mckusick requested changes to D17586: Make fsck(8) use pread(2).

I prefer not to do things halfway. Either we use lseek/read or we use pread. Having it half & half is just crappy coding style. It is possible to write some tests that will exercise the error cases, so if you want to make this change, then I would like you to do it completely.

Oct 19 2018, 2:39 AM

Oct 17 2018

mckusick added a comment to D17586: Make fsck(8) use pread(2).

In answer to kib:

Oct 17 2018, 5:21 PM

Oct 16 2018

mckusick accepted D17586: Make fsck(8) use pread(2).

This change looks fine to me.

Oct 16 2018, 6:51 PM

Oct 2 2018

mckusick committed rS339082: Add missing newline in pwarn message..
Add missing newline in pwarn message.
Oct 2 2018, 1:45 PM

Sep 18 2018

mckusick accepted D17208: Fix state of dquot-less vnodes after failed quotaoff..

This seems like the correct approach to me.

Sep 18 2018, 2:41 PM

Sep 6 2018

mckusick committed rS338517: The Call For Testing had no reports of operational problems and.
The Call For Testing had no reports of operational problems and
Sep 6 2018, 11:28 PM

Aug 27 2018

mckusick committed rS338340: When doing a -S "safe copy", the install command should do an.
When doing a -S "safe copy", the install command should do an
Aug 27 2018, 3:21 PM