[lkml]   [2000]   [Jan]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [Patch] Cleanup struct gendisk registration, 2.3.40-pre1

    On Sun, 16 Jan 2000, Linus Torvalds wrote:

    > On Sun, 16 Jan 2000, Alexander Viro wrote:
    > >
    > > Erm... You know a way to fsck root without mounting it?
    > [ Note: I said _fdisk_, not fsck. Completely different things. Fsck is
    > another alias issue, though, so I'll give you an answer anyway, even
    > though this is not the same issue we were discussing ]
    > It doesn't matter.
    > You CANNOT synchronize that case anyway, and you should just realize that
    > and not even try too hard.
    > Hint: the buffer cache is the _least_ of your worries. You have the inode
    > cache and dcache already populated, and whatever you do to the buffer
    > cache will have absolutely no impact on them at all.
    > To be strictly safe, we should just do a complete unmount/remount after
    > the fsck, not just what we do now (ie a "remount" without the umount). It
    > hasn't ever bitten us in real use, though.

    We _can't_ do complete umount. init and libc alone will not let us do it
    (come to think of that, umount(8) may be a problem too ;-).

    ObInvalidatingStuff: it's not as bad as it sounds. Once we go for
    pagecache on devices we will be in much better position:
    a) dropping the pages will be needed on BDEV_FILE -> BDEV_FS.
    Not too often thing, aside of fsck/mount. And mount after fsck really
    should not bother much with metadata - I agree with you here.
    b) the only case when we need to flush buffers will be umount().
    Notice that it affects only metadata - data is in page cache, so until it
    is not flushed we can't drop inodes, thus can't umount.
    c) BDEV_FILE -> BDEV_FILE is not a problem - no invalidation is
    needed. However, we can't destroy block_device until all pages are gone.
    BFD - memory pressure will get rid of them. All we need is
    shrink_bdcache() that would go through the list of block_devices with
    bd_count==0 and drop those who have no pages. Notice that dissociating
    the block_device from driver still can be done on blkdev_put() - no harm
    will be done. That takes care of floppy and friends.

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 13:56    [W:0.020 / U:149.164 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site