Page MenuHomeFreeBSD

mckusick (Marshall Kirk McKusick)
User

Projects

User Details

User Since
Oct 24 2014, 7:17 PM (225 w, 14 h)

Recent Activity

Mon, Jan 28

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.

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

Looks good.

Mon, Jan 28, 9:56 PM
mckusick committed rS343538: MFC of 343449 and 343483.
MFC of 343449 and 343483
Mon, Jan 28, 9:48 PM
mckusick committed rS343537: MFC of 343449 and 343483.
MFC of 343449 and 343483
Mon, Jan 28, 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
Mon, Jan 28, 9:37 PM

Sun, Jan 27

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).

Sun, Jan 27, 9:03 PM

Sat, Jan 26

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
Sat, Jan 26, 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
Sat, Jan 26, 5:35 AM

Fri, Jan 25

mckusick committed rS343457: Add printing of b_ioflags to DDB `show buffer' command..
Add printing of b_ioflags to DDB `show buffer' command.
Fri, Jan 25, 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
Fri, Jan 25, 8:07 PM

Thu, Jan 17

mckusick committed rS343115: Truely fix #if defined broken in -r343111.
Truely fix #if defined broken in -r343111
Thu, Jan 17, 4:27 PM
mckusick committed rS343114: Proper definition of elast3..
Proper definition of elast3.
Thu, Jan 17, 3:42 PM
mckusick committed rS343113: Fix #if defined broken in -r343111.
Fix #if defined broken in -r343111
Thu, Jan 17, 3:35 PM

Jan 17 2019

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

Aug 23 2018

mckusick committed rS338281: Proper spelling of consolidation..
Proper spelling of consolidation.
Aug 23 2018, 10:35 PM

Aug 20 2018

mckusick committed rS338118: TRIM consolodation is supposed to be off by default.
TRIM consolodation is supposed to be off by default
Aug 20 2018, 9:19 PM
mckusick committed rS338117: Fix incorrect output when printing block lists for files small enough.
Fix incorrect output when printing block lists for files small enough
Aug 20 2018, 8:44 PM

Aug 19 2018

mckusick committed rS338057: For traditional disks, the filesystem attempts to allocate the.
For traditional disks, the filesystem attempts to allocate the
Aug 19 2018, 5:19 PM
mckusick committed rS338056: Add consolodation of TRIM / BIO_DELETE commands to the UFS/FFS filesystem..
Add consolodation of TRIM / BIO_DELETE commands to the UFS/FFS filesystem.
Aug 19 2018, 4:56 PM

Aug 18 2018

mckusick committed rS338031: Replace the TRIM consolodation framework originally added in -r337396.
Replace the TRIM consolodation framework originally added in -r337396
Aug 18 2018, 10:22 PM
mckusick committed rS338029: Revert -r337396. It is being replaced with a revised interface that.
Revert -r337396. It is being replaced with a revised interface that
Aug 18 2018, 9:21 PM

Aug 7 2018

mckusick committed rS337437: When getting mount information for all filesystems, mount uses the.
When getting mount information for all filesystems, mount uses the
Aug 7 2018, 9:18 PM

Aug 6 2018

mckusick committed rS337396: Put in place the framework for consolodating contiguous blocks into.
Put in place the framework for consolodating contiguous blocks into
Aug 6 2018, 9:09 PM

Jul 30 2018

mckusick added a comment to D16328: brelse() should not make buffers dirty again when writes fail.

The idea of channelling everything through b_iodone is aesthetically pleasing, but impractical. Adding an extra indirect call to every buffer operation introduces a lot of overhead for a very rare event. It also requires changes to every filesystem that uses the buffer cache (which is most of them). So, the idea of adding a function that gets called only when a disk goes offline that can have a default function that keeps the current (albeit broken) behavior of redirtying the buffer is both efficient and requires far less code churn.

Jul 30 2018, 6:05 AM

Jul 22 2018

mckusick added a comment to D16328: brelse() should not make buffers dirty again when writes fail.

As kib has pointed out, much of UFS is not prepared to deal with failure.

Jul 22 2018, 7:04 PM

Jul 20 2018

mckusick requested changes to D16328: brelse() should not make buffers dirty again when writes fail.

On further thought, I realize that while we (correctly) deal with the B_PAGING panic, we simply replace it with the "dangling dependency" panic in UFS along with about 100 UFS metadata corruption panics that occur if the I/O fails when writing a UFS metadata block. So, at a minimum we need to make a callback to the filesystem when we are going to fail a write so that it can take some sort of defensive action (such as forcible unmount). This can be done here where we know that we are about to start the cascade or perhaps in buf_free where we should call buf_deallocate if the reason for the buffer being freed is that it had a failed write.

Jul 20 2018, 2:59 PM

Jul 19 2018

mckusick accepted D16328: brelse() should not make buffers dirty again when writes fail.

I am fine with this change.

Jul 19 2018, 5:25 PM

Jul 17 2018

mckusick committed rS336361: Add needed locking for um_flags added in -r335808..
Add needed locking for um_flags added in -r335808.
Jul 17 2018, 4:44 AM

Jul 7 2018

mckusick committed rS336074: Import commit from NetBSD with checkin message:.
Import commit from NetBSD with checkin message:
Jul 7 2018, 7:12 PM

Jun 29 2018

mckusick committed rS335808: Create um_flags in the ufsmount structure to hold flags for a UFS filesystem..
Create um_flags in the ufsmount structure to hold flags for a UFS filesystem.
Jun 29 2018, 10:24 PM

Jun 7 2018

mckusick committed rS334814: Ensure proper initialization of superblock..
Ensure proper initialization of superblock.
Jun 7 2018, 8:49 PM

Jun 2 2018

mckusick accepted D15342: Break recursion involving getnewvnode and zfs_rmnode.

I am not the right person to review the ZFS-specific parts of this change. But the approach of avoiding recursive invocations of getnewvnode is needed and this change accomplishes that requirement.

Jun 2 2018, 6:25 PM

May 17 2018

mckusick accepted D15456: change ffs_blkfree() trim to not bypass geom_vfs, avoids panics.

This looks good to me. I'll change the M_TEMP to M_TRIM when I check my changes into the tree.

May 17 2018, 5:31 AM

May 16 2018

mckusick committed rS333694: Fix warning found by Coverity..
Fix warning found by Coverity.
May 16 2018, 11:42 PM
mckusick committed rS333693: Revert change made in base r171522.
Revert change made in base r171522
May 16 2018, 11:30 PM

Apr 19 2018

mckusick committed rS332798: Fix incorrect output for a file consisting of a single full-size.
Fix incorrect output for a file consisting of a single full-size
Apr 19 2018, 10:44 PM

Apr 18 2018

mckusick committed rS332742: In addition to the existing argument format:.
In addition to the existing argument format:
Apr 18 2018, 11:08 PM
mckusick committed rS332741: Check the inode type and only attempt to print block lists for.
Check the inode type and only attempt to print block lists for
Apr 18 2018, 10:25 PM

Apr 17 2018

mckusick committed rS332638: MFC of 332264, 332266, 332415:.
MFC of 332264, 332266, 332415:
Apr 17 2018, 12:03 AM

Apr 11 2018

mckusick committed rS332415: Fix potentially overflowing expression "fs->fs_ipg * fs->fs_ncg".
Fix potentially overflowing expression "fs->fs_ipg * fs->fs_ncg"
Apr 11 2018, 7:29 PM

Apr 8 2018

mckusick committed rS332268: Add (intmax_t) type casts to some printf parameters to keep i386 happy..
Add (intmax_t) type casts to some printf parameters to keep i386 happy.
Apr 8 2018, 7:18 AM
mckusick committed rS332267: When using the fsdb `blocks' command, replace the long and ugly list of.
When using the fsdb `blocks' command, replace the long and ugly list of
Apr 8 2018, 7:06 AM