9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: erik quanstrom <quanstro@quanstro.net>
To: 9fans@cse.psu.edu
Subject: Re: device-specific qid.version behaviour (was Re: [9fans] QTCTL?)
Date: Mon,  5 Nov 2007 11:40:31 -0500	[thread overview]
Message-ID: <7e65325a0cd907feca744c030f025319@quanstro.net> (raw)
In-Reply-To: <df49a7370711050810g1cc9391eq40aa251d26bbe795@mail.gmail.com>

> 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

> > using a seperate file to detect media change introduces a
> > race.  with network-attached media this might be a problem.
> 
> there's a race anyway if you're doing the stat in a separate process.
> if you're not, then it's the same either way, no?

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.

> > the fact is, you can't deal with a physical disk like /dev/sdE0/data
> > in the same way you can deal with a regular fileserver.
> 
> perhaps not. but by putting device-specific information in qid.vers,
> you run the risk that you can't treat a file on a regular fileserver
> as if it was a physical disk, and i really like being able to do that.

i assume that you mean a file on a fs not the fs itself.

the qid.vers is *always* device or fs specific.  i don't understand
what specific case you think is broken.  again, it's not expected that
the client look at the qid.vers.  nothing would break if you used
a file on a fs.  (as i do all the time.)  you just wouldn't get Echange errors.

> and i'm afraid i really disagree with the following:
> 
> > seriously, the fewer rigid rules we make for 9p,
> > the more adaptable it will be.
> 
> i feel that real adaptability comes from having a few, well-defined
> rules, and freedom within those rules. that way you get
> good interoperability, but also flexibility, because the rules
> aren't really that restrictive. for me, 9p's unwritten rule seems
> to be "if you do it, do it right", whether you're talking
> about versions, sizes, read/write offsets, or whatever.

as you state it, i agree.  but you're arguing against a qid.vers
usage that dates back to before web browsers.

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.

- erik


  reply	other threads:[~2007-11-05 16:40 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 [this message]
2007-11-05 17:06           ` roger peppe
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=7e65325a0cd907feca744c030f025319@quanstro.net \
    --to=quanstro@quanstro.net \
    --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).