Re: ext3 and SPEC SFS Run rules.
From: Andrew Morton
Date: Mon Jul 26 2004 - 02:06:40 EST
Tigran Aivazian <tigran@xxxxxxxxxxxxxxxxxxxx> wrote:
>
> I have a simple question --- does ext3 conform to the SPEC SFS Run rules
> with default mount options or does one need to force the correct
> behaviour by mounting in some "special" way?. Here is the URL for the
> rules:
>
> http://www.spec.org/sfs97r1/docs/runrules.html
>
> In particular, the bit that is worrying me is:
>
> For NFS Version 3, the server adheres to the protocol specification. In
> particular the requirement that for STABLE write requests and COMMIT
> operations the NFS server must not reply to the NFS client before any
> modified file system data or metadata, with the exception of access times,
> are written to stable storage for that specific or related operation.
> See RFC 1813, NFSv3 protocol specification for a definition of STABLE
> and COMMIT for NFS write requests.
>
> As far as I can see from nfsd source this means:
>
> a) write with 'stable' flag set does a f_op->write() with O_SYNC.
>
> b) COMMIT3 just means f_op->fsync().
>
> So, the question is really --- do ext3 O_SYNC write and fsync require some
> special mount options to work _properly_ or are they fine by default?
>
> Looking at ext3_sync_file() it seems OK by default.
>
> However, looking at ext3 ->write() operation it seems to forcibly commit
> only if it is mounted with EXT3_MOUNT_JOURNAL_DATA option (or if it is not
> a regular file or if EXT3_JOURNAL_DATA_FL inode flag is set).
ext3 should be fully syncing data and metadata for both fsync() and O_SYNC
writes in all three journalling modes. If not, that's a big bug.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/