[prev in list] [next in list] [prev in thread] [next in thread] 

List:       netbsd-bugs
Subject:    kern/10463: LFS: kernel code can mistakenly clear SEGSUM_ACTIVE bit it segment summary struct
From:       jevans () cray ! com
Date:       2000-06-27 18:06:58
[Download RAW message or body]


> Number:         10463
> Category:       kern
> Synopsis:       LFS: kernel code can mistakenly clear SEGSUM_ACTIVE bit it segment \
>                 summary struct
> Confidential:   no
> Severity:       critical
> Priority:       medium
> Responsible:    kern-bug-people
> State:          open
> Class:          sw-bug
> Submitter-Id:   net
> Arrival-Date:   Tue Jun 27 11:07:01 PDT 2000
> Closed-Date:
> Last-Modified:
> Originator:     Jim Evans
> Release:        1.4.2
> Organization:
Cray
> Environment:
N/A 

> Description:

lfs_segment.c:545-546.  Code fails to convert lfs_nextseg from daddr 
to segment number prior to using it to index into ifile structures.  
Typically causes checkpoint flushes to mistakenly clear the active 
segment's SEGSUM_ACTIVE bit.  

Typically leads to some of the symptoms described in pr kern/8889
> How-To-Repeat:
Aggravated by small/busy LFS filesystems & small cleanerd sleep intervals. 
> Fix:
510,511c510,511
<                       if (fs->lfs_curseg/fs->lfs_sepb==(ibno-fs->lfs_cleansz))
<                               ((SEGUSE \
                *)(bp->b_data))[fs->lfs_curseg%fs->lfs_sepb].su_flags |= \
                SEGUSE_ACTIVE;
---
> if (datosn(fs, fs->lfs_curseg)/fs->lfs_sepb==(ibno-fs->lfs_cleansz))
> ((SEGUSE *)(bp->b_data))[datosn(fs, fs->lfs_curseg)%fs->lfs_
> Release-Note:
> Audit-Trail:
> Unformatted:


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic