Skip to content
  • Kirk McKusick's avatar
    Eliminate a locking panic when cleaning up UFS snapshots after a · 79a5c790
    Kirk McKusick authored
    disk failure.
    
    Each vnode has an embedded lock that controls access to its contents.
    However vnodes describing a UFS snapshot all share a single snapshot
    lock to coordinate their access and update. As part of mounting a
    UFS filesystem with snapshots, each of the vnodes describing a
    snapshot has its individual lock replaced with the snapshot lock.
    When the filesystem is unmounted the vnode's original lock is
    returned replacing the snapshot lock.
    
    When a disk fails while the UFS filesystem it contains is still
    mounted (for example when a thumb drive is removed) UFS forcibly
    unmounts the filesystem. The loss of the drive causes the GEOM
    subsystem to orphan the provider, but the consumer remains until
    the filesystem has finished with the unmount. Information describing
    the snapshot locks was being prematurely cleared during the orphaning
    causing the return of the snapshot vnode's original locks to fail.
    The fix is to not clear the needed information prematurely.
    
    Sponsored by: Netflix
    79a5c790