07 Jan, 2006

1 commit

  • The hash.h hash_long function, when used on a 64 bit machine, ignores many
    of the middle-order bits. (The prime chosen it too bit-sparse).

    IP addresses for clients of an NFS server are very likely to differ only in
    the low-order bits. As addresses are stored in network-byte-order, these
    bits become middle-order bits in a little-endian 64bit 'long', and so do
    not contribute to the hash. Thus you can have the situation where all
    clients appear on one hash chain.

    So, until hash_long is fixed (or maybe forever), us a hash function that
    works well on IP addresses - xor the bytes together.

    Thanks to "Iozone" for identifying this problem.

    Cc: "Iozone"

    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     

08 Sep, 2005

1 commit

  • When registering an RPC cache, cache_register() always sets the owner as the
    sunrpc module. However, there are RPC caches owned by other modules. With
    the incorrect owner setting, the real owning module can be removed potentially
    with an open reference to the cache from userspace.

    For example, if one were to stop the nfs server and unmount the nfsd
    filesystem, the nfsd module could be removed eventhough rpc.idmapd had
    references to the idtoname and nametoid caches (i.e.
    /proc/net/rpc/nfs4./channel is still open). This resulted in a
    system panic on one of our machines when attempting to restart the nfs
    services after reloading the nfsd module.

    The following patch adds a 'struct module *owner' field in struct
    cache_detail. The owner is further assigned to the struct proc_dir_entry
    in cache_register() so that the module cannot be unloaded while user-space
    daemons have an open reference on the associated file under /proc.

    Signed-off-by: Bruce Allan
    Cc: Trond Myklebust
    Cc: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bruce Allan
     

24 Jun, 2005

1 commit

  • This patch creates a new kstrdup library function and changes the "local"
    implementations in several places to use this function.

    Most of the changes come from the sound and net subsystems. The sound part
    had already been acknowledged by Takashi Iwai and the net part by David S.
    Miller.

    I left UML alone for now because I would need more time to read the code
    carefully before making changes there.

    Signed-off-by: Paulo Marques
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paulo Marques
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds