[lkml]   [2000]   [Dec]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [patch] Re: [patch-2.4.0-test12-pre6] truncate(2) permissions

    On Thu, 7 Dec 2000, Tigran Aivazian wrote:

    > The rationale for being compatible with 4.4BSD on append-only but not on
    > immutable is -- for immutable we can do the test by means of permission()
    > fast but for append-only we would need an extra if() above permission so
    > let's just be BSD-compatible. Alternatively, one could ignore BSD
    > altogether and return EACCES in both. Or, one could ignore SuS altogether
    > and return EPERM for both immutable and append-only. It is a matter of
    > taste so... I chose something in the middle , perhaps non-intuitive but
    > optimized for speed and the size of code.

    Big, loud "yuck". The first rule of optimization: don't. I agree that
    in the current code test for immutable is dead. However, the rationale
    above is a BS. The path is nowhere near time-critical ones. Moreover,
    it doesn't make the code simpler.

    History: 4.4BSD treats immutable and append-only the same way it treats
    removal from sticky-bit directories, etc. I.e. consistenly returns
    -EPERM. Yes, on access(), open() for write, directory operations, yodda,

    So correct solution may very well be to change the return value of
    permission(9). FWIW, MAY_TRUNCATE might be a good idea - notice that
    knfsd already has something like that. It makes sense for directories,
    BTW - having may_delete() drop the IS_APPEND() test and pass MAY_TRUNCATE
    to permission() instead.

    <looking at the truncate(2) manpage>
    Oh, lovely - where the hell had the following come from?
    % man truncate
    EINVAL The pathname contains a character with the high-
    order bit set.
    Andries, would you mind removing that, erm, statement? I'm curious about
    its genesis - AFAIK we had 8bit-clean namei for ages (quite possibly since

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 12:51    [W:0.019 / U:4.828 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site