Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 3 Nov 1999 09:44:35 -0800 (PST)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        Zhihui Zhang <zzhang@cs.binghamton.edu>
Cc:        Greg Lehey <grog@lemis.com>, freebsd-hackers@FreeBSD.ORG
Subject:   Re: Granularity of disk I/O
Message-ID:  <199911031744.JAA59898@apollo.backplane.com>
References:   <Pine.GSO.3.96.991103101211.19385C-100000@sol.cs.binghamton.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
:
:Thanks for your reply.  I know that directory entries are physically
:prevented from crossing device block boundaries in order to ensure atomic
:update. If I write a directory file with a buffer (using some kind of
:multi-sector transfer) and do not know which sector within the buffer
:fails, what will the filesystem do?
:
:-Zhihui

    All modern SCSI & IDE disks will remap sectors on write failures, 
    so unless the disk is totally hosed you don't have to worry about 
    this situation occuring.  If the disk is totally hosed you will have 
    other problems to worry about.

    Currently if a write fails the filesystem will retry it.  The system
    will remain internally consistent but if you reboot without the buffer
    getting successfully written to the disk then the disk will wind up
    with some corruption and have to be recovered with fsck.

    From the system's point of view, there is no difference in reliability
    between doing a single sector transfer and a multi-sector transfer 
    except for the size of the retry.  Since retries do not occur very often
    nobody really cares how big the retry is.  Since there is a huge
    performance gain doing multi-sector transfers, that is what the
    system does.

					-Matt
					Matthew Dillon 
					<dillon@backplane.com>


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199911031744.JAA59898>