The pathname reparse points case (2009/387) was approved during today's
PSARC meeting, subject to providing updated materials that reflect
changes agreed to during our discussion.

Here are my notes from the meeting.  They describe the required
updates.

                -- Glenn

----------------

Notes from the commitment review for PSARC 2009/387 [Pathname Reparse Points]
held on 5-Aug-2009.

The case was approved with members voting as follows:
    Kais Belgaied       approve
    Mark Carlson        approve
    Garrett D'Amore     approve
    Richard Matthews    approve
    Sebastien Roy       approve
    Glenn Skinner       approve
    Mark Martin [LSARC] approve

Discussion during the review led to two specification changes:

-   The release binding changed from update to minor.

    (This change was triggered by observing that the change to the signature
    of VOP_LOOKUP() was not suitable for an update binding.)

-   The stability level of the in-symlink reparse point format changed from
    Committed Private to Committed.

    (This change was motivated by noting that there should be a way to know
    that one has not inadvertenty created a reparse point when creating a
    symlink.)

During the discussion, we identified numerous places where the specification
and the 20 questions document could and should be clarified.  The project team
agreed to do so and will deliver a revised specification containing the
clarifications (as well as the changes noted above).  In particular:

-   The discussion of release binding in the 20 questions document will be
    clarified to note that the project intends to deliver into the Nevada
    release (which implies that it will also deliver into OpenSolaris.)

-   The response to question 1 in the 20 questions document will be revised to
    name 2009/399 [Reparse Points and Referrals Umbrella Case] as a related
    case.

-   The specification's discussion of error return values in sections 5.1 and
    5.1 will be clarified to avoid giving the impression that they will set
    errno.

-   The specification will be updated to make it clear that the check for
    existence of a file whose name is identical to the contents of a
    to-be-established reparse point appliies only to the create reparse point
    call, not to symlink(2).

Other points of note:

-   The key issue in the case was the question of whether or not the presence
    of a reparse point affects POSIX conformance.

    The problem is that a POSIX-conformant application could create a symlink
    whose contents match the reparse point syntax.  Subsequently, that, or
    another POSIX-conformat, application could do a pathname traversal through
    that symlink, have it be treated as a reparse point (thereby inducing its
    interpretation, perhaps as an NFS referral), and experience normal symlink
    semantics (either a traversal failure or having the traversal resolve to a
    file whose name matches the reparse point's contents).

    The project team noted that this situation can only arise when a non-POSIX
    conformant service (such as NFS or SMB) has control over the part of the
    file system name space containing the reparse point.  The team further
    claimed that this involvement of a non-POSIX copnformant service removes
    the traversal from the scope of activities subject to POSIX requirements.

    After some discussion, the committee accepted this argument.

-   We discussed whether adding some mechanism to enable and disable reporse
    points, perhaps on a file system-wide basis would help alleviate the
    compatibility concerns illustrated by the previous point.

    The consensus among the committee and project team members was that this
    proposed cure was worse than the disease.

-   We wondered whether this case hould have a dependency on one of the
    follow-on cases mentioned in 2009/399 [Reparse Points and Referrals
    Umbrella Case] to ensure that a consumer of this project's deliverables is
    delived in tandem with this projhect itself.

    The project team argued that this case provides value in and of itself,
    and the committee member accepted this argument.

The committee also wished to offer various pieces of advice:

-   Any follow-on project that provides a service employing reparse points
    should verify that referral data provided in response to triggering a
    reparse point is properly audited on the client system that triggered the
    reparse point.

-   As part of preparing the materials for the ARC review of the upcoming NFS
    referrals case, committee members advise that project team to provide a
    step by step account of what happens when pathname traversam encounters a
    referral.


Reply via email to