lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 9 Sep 2022 02:14:19 +0000 From: Trond Myklebust <trondmy@...merspace.com> To: "neilb@...e.de" <neilb@...e.de> CC: "zohar@...ux.ibm.com" <zohar@...ux.ibm.com>, "djwong@...nel.org" <djwong@...nel.org>, "xiubli@...hat.com" <xiubli@...hat.com>, "brauner@...nel.org" <brauner@...nel.org>, "linux-xfs@...r.kernel.org" <linux-xfs@...r.kernel.org>, "linux-api@...r.kernel.org" <linux-api@...r.kernel.org>, "bfields@...ldses.org" <bfields@...ldses.org>, "david@...morbit.com" <david@...morbit.com>, "fweimer@...hat.com" <fweimer@...hat.com>, "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>, "chuck.lever@...cle.com" <chuck.lever@...cle.com>, "jlayton@...nel.org" <jlayton@...nel.org>, "linux-man@...r.kernel.org" <linux-man@...r.kernel.org>, "linux-nfs@...r.kernel.org" <linux-nfs@...r.kernel.org>, "tytso@....edu" <tytso@....edu>, "viro@...iv.linux.org.uk" <viro@...iv.linux.org.uk>, "jack@...e.cz" <jack@...e.cz>, "linux-ext4@...r.kernel.org" <linux-ext4@...r.kernel.org>, "linux-btrfs@...r.kernel.org" <linux-btrfs@...r.kernel.org>, "linux-fsdevel@...r.kernel.org" <linux-fsdevel@...r.kernel.org>, "adilger.kernel@...ger.ca" <adilger.kernel@...ger.ca>, "lczerner@...hat.com" <lczerner@...hat.com>, "ceph-devel@...r.kernel.org" <ceph-devel@...r.kernel.org> Subject: Re: [man-pages RFC PATCH v4] statx, inode: document the new STATX_INO_VERSION field On Fri, 2022-09-09 at 01:10 +0000, Trond Myklebust wrote: > On Fri, 2022-09-09 at 11:07 +1000, NeilBrown wrote: > > On Fri, 09 Sep 2022, NeilBrown wrote: > > > On Fri, 09 Sep 2022, Trond Myklebust wrote: > > > > > > > > > > > IOW: the minimal condition needs to be that for all cases > > > > below, > > > > the > > > > application reads 'state B' as having occurred if any data was > > > > committed to disk before the crash. > > > > > > > > Application Filesystem > > > > =========== ========= > > > > read change attr <- 'state A' > > > > read data <- 'state A' > > > > write data -> 'state B' > > > > <crash>+<reboot> > > > > read change attr <- 'state B' > > > > > > The important thing here is to not see 'state A'. Seeing 'state > > > C' > > > should be acceptable. Worst case we could merge in wall-clock > > > time > > > of > > > system boot, but the filesystem should be able to be more helpful > > > than > > > that. > > > > > > > Actually, without the crash+reboot it would still be acceptable to > > see > > "state A" at the end there - but preferably not for long. > > From the NFS perspective, the changeid needs to update by the time > > of > > a > > close or unlock (so it is visible to open or lock), but before that > > it > > is just best-effort. > > Nope. That will inevitably lead to data corruption, since the > application might decide to use the data from state A instead of > revalidating it. > The point is, NFS is not the only potential use case for change attributes. We wouldn't be bothering to discuss statx() if it was. I could be using O_DIRECT, and all the tricks in order to ensure that my stock broker application (to choose one example) has access to the absolute very latest prices when I'm trying to execute a trade. When the filesystem then says 'the prices haven't changed since your last read because the change attribute on the database file is the same' in response to a statx() request with the AT_STATX_FORCE_SYNC flag set, then why shouldn't my application be able to assume it can serve those prices right out of memory instead of having to go to disk? -- Trond Myklebust Linux NFS client maintainer, Hammerspace trond.myklebust@...merspace.com
Powered by blists - more mailing lists