ext3 and SPEC SFS Run rules.

From: Tigran Aivazian
Date: Thu Jul 22 2004 - 13:52:02 EST


Hi,

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).

Therefore, it would seem that for ext3 to be valid for SPEC SFS 3.0 (or
2.0) run one has to mount it with "data=journal". Please correct me if I
am wrong in coming to this conclusion.

Kind regards
Tigran

-
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/