9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: "roger peppe" <rogpeppe@gmail.com>
To: "Fans of the OS Plan 9 from Bell Labs" <9fans@cse.psu.edu>
Subject: Re: device-specific qid.version behaviour (was Re: [9fans] QTCTL?)
Date: Mon,  5 Nov 2007 17:06:17 +0000	[thread overview]
Message-ID: <df49a7370711050906y7677c493r11202d6b2a1949f5@mail.gmail.com> (raw)
In-Reply-To: <7e65325a0cd907feca744c030f025319@quanstro.net>

On 11/5/07, erik quanstrom <quanstro@quanstro.net> wrote:
> > i'm sorry? the server is the one *generating* the qid, surely?
> > for instance, in the case of cdfs, the version number comes from the
> > scsi(2) library function, and doesn't have any necessary correspondence with
> > qid.vers as found in the data file served by cdfs. so strictly speaking,
> > the server isn't doing any qid checking at all - it's just looking at
> > its own data structures.
>
> /n/sources/plan9/sys/src/9/port/devsd.c:177

???
i'm probably being stupid here, but all i see there is devsd dealing
with its own data structures, with no external qids involved at all.
an SDunit doesn't correspond with any file that devsd uses, as far as i can see.

> there is no race.  the client does a pread/pwrite blithly.  devsd returns
> -1, Echange if the medium has changed since the fd was opened.

that's absolutely fine. if that's all that's going on, why bother reflecting
the medium change in qid.vers of the data file? just leave it at 0 and be done
with it.

> it's not expected that the client look at the qid.vers.

then why is it exported to the client?

> as i understand it you argue that qid.vers should change for each
> write for any server.  many devices just use 0 for qid.vers and never
> increment it.  so you can't use qid.vers on a stream or any fs
> that just sets qid.vers to 0.  so, in general, one can't use qid.vers
> as you propose.

that's precisely why i was arguing for a documented exception
to the version rule: if the version is 0, treat the file as "always changed".
it's also why i was arguing against implementations like cdfs
that export a "partial" qid.vers that's neither one thing nor another,
useful only to clients that know exactly what kind of file it is
(in which case the information could be provided some other way).

> fileservers can't be forced to maintain all of the stat fields.
> they are free to lie as the wish.

some lies are worse than others!
for instance, i've seen a server that put the
number of (variably sized) records in a file in its size field,
rather than the number of bytes. i'd definitely say that was
worse than giving zero, though strictly speaking they're
both lies...


  reply	other threads:[~2007-11-05 17:06 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-05 11:18 roger peppe
2007-11-05 13:18 ` erik quanstrom
2007-11-05 14:35   ` roger peppe
2007-11-05 15:01     ` erik quanstrom
2007-11-05 16:10       ` roger peppe
2007-11-05 16:40         ` erik quanstrom
2007-11-05 17:06           ` roger peppe [this message]
2007-11-05 17:54             ` erik quanstrom
2007-11-05 22:17               ` roger peppe
2007-11-05 23:21                 ` erik quanstrom
2007-11-06  0:53                   ` Charles Forsyth
2007-11-05 17:26           ` Skip Tavakkolian
2007-11-05 18:25             ` Eric Van Hensbergen
2007-11-05 19:52               ` Skip Tavakkolian
2007-11-05 22:12                 ` Skip Tavakkolian
2007-11-05 16:42         ` erik quanstrom
2007-11-05 15:27     ` erik quanstrom

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=df49a7370711050906y7677c493r11202d6b2a1949f5@mail.gmail.com \
    --to=rogpeppe@gmail.com \
    --cc=9fans@cse.psu.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).