[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.130 / U:2.920 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site