Commits
- Commit:
021481cadee5324ef838e632a87746cdabffd5e3
- From:
- Omar Polo <op@omarpolo.com>
- Date:
Topen implemented
Implement Topen plus some basic testing. ORCLOSE (remove file when the
fid is clunked) is mapped to O_CLOEXEC and tried to be honoured on
fid_free.
"vanilla" 9P2000 uses reads on directories to list the entries while
9P2000.L (and .U too possibly) introduces an explicit Treaddir. I'm
planning to support 9P2000-style read-on-dir but not yet.
- Commit:
5b704257daf17ddb642c3e353095663903c3247e
- From:
- Omar Polo <op@omarpolo.com>
- Date:
initialize to -1 fid' fd
- Commit:
29f1f5824909cc91325fd45105a82d1006f5e176
- From:
- Omar Polo <op@omarpolo.com>
- Date:
update qid and fid structs + docs
I've finally made up my mind regarding the qid and fid handling. fids
are fine as they currently are, I've just added some comments to don't
forget the meaning of the iomode and fd fields. The values KFIO_W/R are
new and will be soon used by the (soon to be added) Topen call.
qids keep the current semantics, but loose some fields that I've added
when I wasn't sure yet. To reiterate: a qid is a directory file
descriptor plus an optional path. If path is empty, the qid refers to
the directory, otherwise to that file in the current directory, c.f.
openat(3).
This makes implementing Topen easier: for instance, if fid1 and fid2 are
backed by the same qid, a Topen on fid1 doesn't need to alter fid1->qid,
and so fid2 is still fine. The reference counting on qids ensures that
we end up closing all the directories fd.
- Commit:
47c9b8b8b3a15c444f6621e2680181eadc8db366
- From:
- Omar Polo <op@omarpolo.com>
- Date:
don't allow duplicating a fid already opened for I/O
if a fid was opened for i/o can't be used for twalk
- Commit:
f987557cb3636bcd8ea1881625e724e77963d7db
- From:
- Omar Polo <op@omarpolo.com>
- Date:
fmt
- Commit:
deb971f5fc2a6781df9930c143939763736b4ae6
- From:
- Omar Polo <op@omarpolo.com>
- Date:
bit of refactoring
amongst other things, walk now correctly uses fds for each step, so
we're not limited by PATH_MAX for the whole walk, but only for the
single path component.
- Commit:
223c9e73b705a987e81795e4a9b99216901abe12
- From:
- Omar Polo <op@omarpolo.com>
- Date:
lower the priority of some logs
- Commit:
2adb951fdeb3f8c3434ef6a777a3948e5beca10a
- From:
- Omar Polo <op@omarpolo.com>
- Date:
disable DEBUG_PACKETS
- Commit:
b806d4d5f817e295b67751f70972867d2bc94bf0
- From:
- Omar Polo <op@omarpolo.com>
- Date:
compute path/vers/type in twalk' wqid
- Commit:
83f6b305b66bda08e569781940a4098cdd60c0a0
- From:
- Omar Polo <op@omarpolo.com>
- Date:
fix the Rwalk serialization
- Commit:
78b94752d5b26103aad5205bb948c9e0639728c3
- From:
- Omar Polo <op@omarpolo.com>
- Date:
move hexdump to utils
- Commit:
a89104b15c575f62abac27cdf91ca61b75e2e3b3
- From:
- Omar Polo <op@omarpolo.com>
- Date:
drop useless check
- Commit:
22dfb5a09b68f25185ba0568b9c3117bffb36513
- From:
- Omar Polo <op@omarpolo.com>
- Date:
typo! nwname should be checked, not nwqid
- Commit:
053e2652121f9aa3477d7ae1433bc63b52aac02b
- From:
- Omar Polo <op@omarpolo.com>
- Date:
improve qid implementation
qid now aren't *always* associated with a fd. They are associated
with a path instead. The may be associated with a fd if the client
preared a fid for I/O. At Tattach time we don't necessarily open the
directory, we just stat it. Same during Twalk.
- Commit:
913eba5cda7629102a8a71f2e07500c359786ed0
- From:
- Omar Polo <op@omarpolo.com>
- Date:
fix comment